Re: Python services within existing .Net infrastructure

Steve - Gadget Barnes <[email protected]>
Newsgroups gmane.comp.python.org.uk
Message-ID <AMSPR07MB421278F73F04B93E19EB2E8AA4D0@AMSPR07MB421.eurprd07.prod.outlook.com>

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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.