[python-uk] Python services within existing .Net infrastructure
Steve - Gadget Barnes
gadgetsteve at hotmail.com
Wed Feb 1 02:05:25 EST 2017
On 01/02/2017 04:25, Jonathan Hartley wrote:
> Thanks all.
>
> Hansel - Thank you, that makes sense. I actually already do a mini
> version of that at the place I'm leaving, but devs are only using
> Linux/Mac host machines, and we only a Linux VM. It's reassuring to hear
> that sort of setup is still feasible when extended to Windows hosts, and
> Windows VMs too.
>
> I'm tempted to reduce the number of dev configurations we need to
> maintain by just holding my nose and using a Windows laptop, same as
> everyone else, with a Linux VM on it. That way, I can easily replicate
> my setup on any other dev's machine if they want to get involved in the
> Python. Would get us up and running quicker, rather than figuring out
> every combo of host and VM OS. But maybe expand into doing the full
> monty you describe if there's ever more than just me who would like to
> work from Linux (or if I get sick of working in a VM the whole time)
>
> Jonathan
>
>
Jonathan,
Have you considered that python is extremely cross platform. Provided
you are careful in the areas of:
- Paths
- Direct hardware interfaces
- Shell operations
- Maintaining your requires.txt file(s)
- A tiny number of libraries that are not (easily) available for
Windows, (maybe it is worth having a blacklist). On that front Christoph
Gohlke has http://www.lfd.uci.edu/~gohlke/pythonlibs/ which can save
many hours of fun. Note that the introduction of the wheel library
format has made things a lot simpler.
You should be able to develop & test python code on Linux (where you are
comfortable) including writing test suites - fire up a Windows VM with
python installed, (complete with populating you library from
requires.txt) & run your test suite. Then, assuming the tests all pass,
either deploy to Windows machines with python already installed as a
prerequisite or while you are in your VM use py2exe/pyinstaller or
cxfreeze to produce a Windows deployment for machines that don't have
python installed. If you stick to good, cross platform, programming
standards you should find it a breeze - pylint is your friend on this.
Just as an example I had been developing a suite of (wx)Python based
programs/utilities at work for quite a few years under Windows 7 and
deploying it. as executables, to machines running XP though 10. When the
whole lot was at about 80k lines I had an opportunity to try it for the
first time on a Linux box - I had to change 3 lines of code to get it
working. Of course this was helped by the fact that I was testing both
as source and as bundled executable.
Many people swear by Anaconda for simplifying this sort of stuff you may
wish to consider going that way personally I stick with pip and
sometimes, rarely, have to re-think which library I am going to have to use.
Of course deploying a docker using vagrant does give you a lot more
control and Linux dockers with python & your libraries installed can be
quite light weight.
--
Steve (Gadget) Barnes
Any opinions in this message are my personal opinions and do not reflect
those of my employer.
More information about the python-uk
mailing list