Running python on a Windows machine vs Linux [closed]
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
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?
Don’t worry. Python is a great language for starters and pros alike. Great news is that it can be installed on Windows so you can learn on a familiar OS. It’s über portable.
You don’t really need ‘skill’ to run linux anymore. Install (K)Ubuntu. It’s easier to install than windows
6 Answers 6
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.
@Tim Yates. It was something like services.msc or something. You had to go to the cute little run option on the ‘start’ menu and then type it in. I’m not really a windows person and I’d rather forget that portion of my life.
@TimeYates, @AaronMcSmooth I know for a fact that this can be done through services.msc. You have to press
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.
What is the secret for making file paths OS-agnostic? For example, I’m always switching between / and `C:\` in strings.
I’ve been working Py on both Windows and Linux. I favor Linux because of several things:
- virtualenvs — once you start working with virtualenvs, there is no turning back.
- SHELL — CMD is very frustrating when executing python/management commands in django. Also, you should add python.exe every time :).
- ipython works better on Linux.
- 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.
- Linux is free 🙂
- 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.
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.
Есть ли какая-нибудь разница в написании приложений на Django, используя Windows или Linux?
Большинство советует использовать Linux, т.к. почти все сервера работают на Unix и поэтому лучше использовать ту систему, которая будет использоваться вашим приложением в продакшене.
Хотелось бы услышать мнение опытных специалистов.
Да, определенно лучше разрабатывать на Linux.
Я сам занимаюсь Django разработкой из под Ubuntu.
Под Windows имел проблемы с pip, иногда нужно было собирать исходники и для этого нужны были разные библиотеки.
Еще могу посоветовать использовать Vagrant в качестве сервера\интерпретатора, с таким же Linux дистрибутивом и окружением как на продакшен сервере, это будет даже лучше. В таком случае можно даже попробовать разрабатывать из под Windows.
Если есть проблемы с установкой linux (проблемы с железом, корпоративные требования и прочее), посмотрите в сторону remote interpreter + VMWare/VirtualBox + Vagrant (опционально).
Из коробки Pycharm прекрасно поддерживает python remote interpreter, autoupload по изменению файлов и Vagrant. Sublime text при помощи плагинов (SFTP) позволяет добиться того же. Ну и в дополнение PuTTY.
Очевидный плюс такого подхода — не надо захламлять хост рабочим окружением; после окончания проекта достаточно создать новую виртуалку с нужным рабочим окружением.
Пользуюсь такой схемой около года, «форточки» менять не хочу.
Как не крути, но заниматься разработкой серверной части, будь то Python или что-то другое намного удобнее на Linux.
в порядке приоритетов:
— bash (на винде есть MinGW, но не стравнить по удобству работы)
— возможность в одну команду настроить базовое окружение (через менеджеры пакетов)
— некоторые либы работают только под linux (хотя почти все популярные вроде как и под windows работают).
— Все клевые штуки для автоматизации процесса деплоя linux-only.
— деплоить вам на linux придется все же.
В целом же. поставьте Ubuntu, PyCharm, oh-my-zsh (что бы симпатишно), и удобнее среды для работы (именно для работы, жить под linux боль, хотя это личное) вы не найдете. Как компромис — Mac.
Чем жить под линукс боль?)
Если специализированный софт или драйвера — проблема тут не в линуксе, а в разработчиках продуктов, которые эту платформу обходят стороной. В остальном то что?
Согласен что есть некоторый софт очень удобный в windows-системах, к примеру миранда или же аимп, мне их до сих пор не хватает, хотя уже полных 4 года полностью пользуюсь только Linux и мог привыкнуть к psi, pidgin или же clementine, но это того не стоит перед той мощью окружения которую ты получаешь взамен. А со временем и погружением в устройство юникс систем понимаешь насколько windows грязная и не продуманная в плане концепций система (это даже не рассматривая вопрос стоимости и лицензионных слоглашений) и уже соприкосновения с ней по работе или в быту приносит душевную боль, от осознания всех ее недостатков и проблем. 🙂
я очень ленивый шиндусятник пересевший по необходимости на linux (debian, ubuntu-gnome). Банально, но linux удобнее, windows сейчас запускаю только когда надо IE, и то как-то редко и только в виртуалке), на работе Mac + все та же Ubuntu gnome. Была б моя воля, сидел бы на Windows (и сидел какое-то время), но если жить мне в нем комфортно, сделать разработку в ней комфортнее у меня не вышло. Финал в этом всем поставила необходимость поработать с Docker.
Я очень ленивый человек, я не хочу тратить неделю на настройку «своего любимого arch linux», как это делал один мой коллега. Так же да, была некоторая проблема с драйверами видео под AMD, благо вроде как начали исправляться, на ядре 3,13 + последняя версия драйверов, почти все баги пропали, но частенько приходится перезапускать gdm при выходе ноута из режима сна.
Так же есть небольшая проблема с сопутствующим ПО. В частности дико расстраивает ситуация с аудиоплеерами, то что pulseaudio отжирает в дефолтной настройке одно ядро из четырех доступных (пришлось долго долго эксперементировать с различными вариантами что бы жить стало комфортнее). До сих пор есть кое-какие проблемы, типа крэши моего любимого (из того что есть под линь) клементина (я так понимаю всему виной некоторые плагины старые для GStreamer, но я уже не жду что клементин перейдет на актуальную ветку оного). Ситуация с плеерами настолько грустна, что я от безнадеги сижу сейчас и пишу еще один свой. Есть правда пара интересных проектов, у которых я черпаю вдохновение, но они либо сырые и полумертвые, либо мертвые.
Это все сугубо мое личное мнение, все эти проблемы — сущая мелочь. Но меня эти мелочи ооочень сильно раздражают. Пытаться предложить решение проблем так же смысла не вижу. Решений нету. Нужно просто надеяться что с развитием таких штук как StreamOS разработчики снизойдут до линукса.
@Gineaser, мирюсь с linux и со всеми мелочами которые так сильно раздражают, только лишь потому, что разрабатывать под WEB из под Windows раздражает на несколько порядков больше.
@sim3x воу, а вот за него спасибо, он миленький) Не то что бы я стал его использовать, но идея интересная. Видел подобное под MPD, но этот забавнее.
@Fesor @sim3x Поделюсь своими впечатлениями от перехода. Очень долгое время, с самого детства работал под шиндошс и. Меня постоянно что-то не устраивало: то тут то там возникали проблемы, устранить которые можно было только переписыванием системы в целом и изменением её архитектуры. Тут вам и убогая дисковая подсистема, мало того что неудобная (буквы, имена, так и ещё и монтирование убогое), так и невероятно медленная. Тут же и туча проблем со сборками — однако постоянно рассказывать где находятся библиотеки и компиляторы каждому инструменту — не самое приятное в жизни программиста.
Начал с убунту. Шлак. Вообще не сильно отличается от винды, те же вылеты, те же нестандартные решения. Но что хуже всего — извращена сама идеология unix, я не удивлён, что сам Линус послал этот дистр куда подальше. Далее пробовал минт, он, ясно, покрасивее и попроще, поближе к дебиану. Однако не то. С archlinux я постиг дзен. Это именно unix-way. Тот самый. Который лично я долго и упорно искал. Ок, теперь что я постиг.
mplayer, никаких оболочек, к чёрту их, настроил аллиасы и конфиги — красота, к слову новый mplayer2 или «как он там называется?» внушает доверие
media player daemon просто чудо, просит пару мегабайт, всё выводит в conky , который так же прекрасен и при этом воспроизводит прекрасно; пара скриптов и вот я подтянул всю библиотеку под себя — поиск по реджексам, пара всплывающих окошек для этого дела, формирование плейлистов «на лету» и сохранение тех, что понравились, локальная голосовалка с помощью echo nest, сейчас даже думаю попробовать заюзать те браслеты, что вроде как настроение умеют определять
awesome прекрасен, про мышку почти забыл
Но самое главное. Здесь всё (или почти всё) зависит от моих рук. Если что-то не работает, то проблема во мне. А ещё, мне нравиться отношение к RAM. 900 метров в простое, 100% набирал ровно один раз — 200 с лишнем вкладок хрома. В общем, это чудо. Дзен. Bash, zsh, терминалы, команды, запросы, ответы, которые сами становятся запросами. Вот это тот самый unix-way, когда каждая утилита умеет только то, ради чего она сделана. НО делает это блестяще.
Ну а по поводу лени @Fesor ‘а. Тут всё просто — для вас MacOS. Линукс был, есть и останется навсегда для гиков. Я это понял не так давно, до этого очень долго пытался уговорить друзей постигнуть линукс, но ubuntu. Она такая убунту, что просто повесится. Debian стабильно печален — софт настолько старый, что только сейчас я смог нормально запустить вторую дотку валвовскую (специально проверил) на старом ноуте Core 2 Duo 4 GB RAM nVidia GT450M. Да, там так всё печально с драйверами даже с отличными бетами nVidia, что дотка упорно показывала не более 10 fps в FullHD. Хотя я ещё RAM не так давно поменял, но всё остальное крутилось на ура до замены RAM с расширением до 8 GB. То есть, по моему это всё таки драйвера.
Ну а шиндошс. Я сейчас пишу с шиндошс. Проблема этой системы в том, что она без фатального недостатка. Она по своему прекрасна, но инженерные решения у знающего и понимающего человека порой заставляют блевать из-за нарушенных представлений об идеалах. С одной стороны мелкомягкие молодцы — они смогли под себя загнать огромный кусок IT-рынка, который едва-едва откусывает Apple, совсем не оставляя ничего свободному софту, особенно учитывая, что свободный софт обычно не даёт гарантий. Наконец, на винде столько работающей проприетарщины, что порой противно-непротивно, приходится к ней возвращаться. И да, это единственная система, на которой нормально работают драйвера AMD ATI APU, уже затерялся в этих аббревиатурах. Без них бедный ноутбук идёт спать через пару часов работы (читай, перегревается), производительность оставляет желать лучшего (SD видео едва гоняет), а время автономной работы ни разу не превысило час, оставаясь близким к получасу. В общем, печаль беда. Хотя что-то такое, интересное и заманчивое в Windows таки есть.