Running python on a Windows machine vs Linux

Question:

I am interested in learning python but my Linux skills suck. I would like to develop a medium to large scale web application using python and django but afraid the software may not work well on a windows box. Is there a performance difference in running python on Linux vs Windows? Is there anything that I should watch out for when developing the application. Also, I am aware that it is very easy integrating C++ libraries with python. Is this statement still true is the code is on a windows box?

Asked By: Luke101

||

Answers:

Don’t tell anybody this, but I’ve run python/django on windows. It works all right and the performance hit isn’t any worse than you would expect from windows. I used MySQL and it installed without a problem. I had to grope around to find out how to manage it (no good ol’ sudo /etc/init.d/mysql restart but i eventually found a graphical interface to do what I needed.

Answered By: aaronasterling

Python program is very easily portable. Most of the time your code will work on any platform that have the appropriate version of python.

One point to be aware of though, is file path handling. Linux, Windows, Macs, etc uses different path schemes, so you shouldn’t be handling them as strings; instead use os.path functions to join, split, etc.

There is ultimately some slight performance difference with regard to timing, threading, processing, I/O, but they’re nothing to worry about.

Integrating Python and C++ is easy; the only problem is in the C++ side, i.e. you will have to recompile the C++ code.

Answered By: Lie Ryan

Shouldn’t be a problem. Some people even host Python+Django on Windows.

Answered By: knitti

I’ve been working Py on both Windows and Linux. I favor Linux because of several things:

  1. virtualenvs – once you start working with virtualenvs, there is no turning back.
  2. SHELL – CMD is very frustrating when executing python/management commands in django. Also, you should add python.exe every time :).
  3. ipython works better on Linux.
  4. GeoDjango doesn’t work on Vista/7 last time i checked. I spent 3 days trying to set it up. Just for comparison, i set GeoDjango-able development environment in 20 minutes in Linux.
  5. Linux is free 🙂
  6. Although there is no visible performance impact or incompatibility when working python cross-platform, the benefits of Linux for python development outweigh Windows by a lot. It’s a lot more comfortable and definitely will boost your productivity.

IMHO Linux is the smart choice for Python development.

Answered By: dekomote
  1. Which software are you affraid will not work on windows, the actual web app or your development enviroment. If you mean the IDE, then I wouldn’t worry about that there are very good python IDEs for windows, as for the webapp that’s another discussion all together

  2. The statement that “it is very easy integrating C++ libs with python” is not accurate, there are many ways of doing it and they are not all easy, I have personally only tried SWIG, but there are many other alternatives (for example Boost.Python), whoever I wouldn’t believe it is as easy to get up and running with some of these tools on a windows enviromeny with out something like mingw or cygwin as at least SWIG is built with *nix in mind

Answered By: hhafez

but afraid the software may not work well on a windows box.

Your software will work. The Windows OS may not work as you hope. But that’s Windows, not Python.

We develop 100% on Windows. We completely test: Unit test, integration test and user acceptance test on Windows. 100%.

We deploy for production 0% on Windows, 100% on Linux.

We have a few (less than 6) differences in the unit tests that are Windows-specific.

The application has no changes. It works with Apache or not. It works with SQLite or MySQL.

Answered By: S.Lott

No. Unfortunately, linux is not a stable operating system (and never really has been). You can expect to spend up to 2 hours each day maintaining the filesystem and fixing bugs that are endemic to linux or the packaging software of your distro of choice. Windows and mac are rock-solid and you may expect to create rock-solid apps in any language. Your employer is much more likely to ask "Do you know Windows Server?" because linux is no longer the first choice of server software. Companies don’t care if you know linux (or Xenix or Citrix or embedded DOS) because few of them use it anyway. If you want to learn python, learn python. Development is fairly machine dependent. You cannot make iOS or Swift apps on linux and you cannot make Windows apps on a Mac. If you want a job, learn job skills that people will pay money for. Linux is a side hobby and will not influence your hireability.

Answered By: Tara B
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.