Как настроить среду разработки Python в Linux?

Я разработчик .NET, который очень мало знает о Python, но хочет дать ему тест-драйв для небольшого проекта, над которым я работаю.

какие инструменты и пакеты я должен установить на свою машину? Я ищу общую, несколько всеобъемлющую среду для развития.

скорее всего, я запущу Ubuntu 9.10, но я гибкий. Если Windows-лучший вариант, это тоже хорошо.

Edit: чтобы уточнить, я не ищу голый минимум, чтобы получить Программа Python для запуска. Я бы не ожидал, что Новичок .NET dev будет использовать блокнот и компилятор. Я бы рекомендовал Visual Studio,NUnit, SQL Server и т. д.

10 ответов


В вашей системе уже есть Python. Используйте текстовый редактор или IDE по вашему выбору; мне нравится vim.

Я не могу сказать вам, какие сторонние модули вам нужны, не зная, какую разработку вы будете делать. Используйте apt столько, сколько сможете, чтобы получить библиотеки.


чтобы поговорить с вашим редактированием:

это не минималистично, как передача Блокнота новичка .NET и компилятора: приличный текстовый редактор и stdlib-все, что вам действительно нужно для начала. Вероятно, вам понадобятся сторонние библиотеки для разработки любых приложений, которые вы пишете, но я не могу думать о каких-либо сторонних модулях все программисты Python действительно нуждаются или хотят.

Unlke мир программирования .NET / Windows, нет ни одного набора инструментов dev, который стоит выше всех других. Разные люди используют разные Редакторы. В Python пространство имен модуля полностью находится в одном файле, а организация проекта основана на файловая система, поэтому люди не опираются на свои IDEs так сильно. Различные проекты используют различное программное обеспечение контроля версий, которое в последнее время процветает с новыми лицами. Большинство из них лучше, чем TFS, и все в 1000 раз лучше, чем SourceSafe.

когда я хочу интерактивный сеанс, я использую интерпретатор vanilla Python. Существуют различные более причудливые интерпретаторы: bpython, ipython, IDLE. bpython является наименее причудливым из них и должен быть хорош в том, чтобы не делать странные вещи. оболочкой IPython и IDLE может привести к странным ошибкам, где код, который работает в них, не работает в обычном Python и наоборот; я видел это из первых рук с IDLE.

для некоторых инструментов, о которых вы спрашивали, и некоторых других

  • в .NET вы бы использовали NUnit. В Python используйте stdlib unittest модуль. Существуют различные сторонние расширения и тестовые бегуны, но unittest должно вас устраивать.
    • если вы действительно хотите посмотреть на что-то за этим, получите unittest2, backport версии 2.7 unittest. Он включил в себя все лучшие вещи из сторонних инструментов и действительно аккуратно.
  • в .NET вы бы использовали SQL Server. В Python вы можете использовать PostgreSQL, MySQL, sqlite или другую базу данных. Python указывает унифицированный API для баз данных, и перенос с одного на другой обычно проходит довольно гладко. sqlite находится в stdlib.
    • существуют различные объектно-реляционные модели для использования базы данных более абстрактные. SQLAlchemy является наиболее заметным из них.
  • если вы занимаетесь сетевым программированием, получите Twisted.
  • если вы делаете численную математику, получить numpy и scipy.
  • если вы занимаетесь веб-разработкой, выбрать основу. Есть около 200000: пилоны, zope, Django, CherryPy, werkzeug...Я не буду начинать спор с рекомендации. Большинство из них с удовольствием будут работать с различными серверами с быстрым установочный.
  • если вы хотите сделать разработку GUI, есть довольно много Привязок Python. Stdlib поставляется с привязками Tk, с которыми я бы не стал возиться. Существуют привязки wx (wxpython), привязки GTK+ (pygtk) и два набора Привязок Qt. Если вы хотите сделать собственную разработку Windows GUI, получите IronPython и сделайте это .Сеть. Есть привязки win32, но они заставят вас захотеть вытащить волосы, пытаясь использовать их напрямую.

чтобы уменьшить вероятность осуществления / полива системной установки python, я обычно устанавливаю виртуальное окружение на установке ubuntu python. Затем я создаю virtualenv в своем домашнем каталоге, чтобы последующие пакеты, которые я устанавливаю через pip или easy_install, не влияли на установку системы. И я добавляю Бин из этого virtualenv на свой путь через .bashrc и

$ sudo apt-get install python-virtualenv
$ virtualenv --no-site-packages ~/local
$ PATH=~/local/bin:$PATH #<----- add this to .bashrc to make it permanent
$ easy_install virtualenv #<--- so that project environments are based off your local environment rather than the system, probably not necessary

Установите свой любимый редактор, мне нравится emacs + веревка, но Редакторы являются личными предпочтениями, и есть много вариантов.

когда я начинаю новый проект / идею, я создаю новую виртуальную среду для этого проекта, чтобы я не влиял на зависимости где-либо еще. Поскольку я бы не хотел, чтобы некоторые из моих проектов сломались из-за обновления библиотеки, и этот проект, и новый зависят.

~/projects $ virtualenv --no-site-packages my_new_project.env
~/projects/my_new_project.env $ source bin/activate
(my_new_project.env)~/projects/my_new_project.env $ easy_install paste ipython #whatever else I think I need
(my_new_project.env)~/projects/my_new_project.env $ emacs ./ & # start hacking

при создании нового пакета...чтобы иметь что-то, что будет easy_installable/pippable use Пастер create

(my_new_project.env)~/projects/my_new_project.env$ paster create new_package
(my_new_project.env)~/projects/my_new_project.env/new_package$ python setup.py develop new_package

это обычный материал, насколько я могу думать об этом. Все остальное будет редактор/инструмент управления версиями конкретного


поскольку я привык к Eclipse, я нахожу Eclipse + PyDev удобным для Python. Для быстрых вычислений Idle отлично подходит.

Я использовал Python в Windows и Ubuntu, а Linux намного чище.


Если вы запустите терминал и введите python вы получите переводчик, где вы можете начать пробовать вещи.

на всякий случай, если вы его не видели, проверьте книгу Погружение В Python, это бесплатно он-лайн. http://www.diveintopython.org/

следуйте примерам в книге, используя интерпретатор.

для хранения вашей работы вы можете использовать любой редактор; Vim или EMACS могут быть самыми мощными, но и самыми трудными для изучения сначала. Если вы хотите больше "традиционные" IDE, вы можете попробовать WingIDE. http://www.wingware.com/

после того, как вы начнете чувствовать себя более комфортно с python, вы должны попробовать улучшенный интерпретатор; попробуйте ipython. http://ipython.scipy.org/moin/

когда вы начнете разрабатывать более серьезный проект, вам нужно будет получить дополнительные модули. Здесь у вас есть два варианта; 1) используйте инструменты дистрибутива для установки дополнительные модули; или 2) загрузите необходимые модули непосредственно со своих сайтов и установите их вручную. Вы будете нести ответственность за их обновление, конечно.

вам придется решить для себя, в какую сторону идти. Лично я предпочитаю загружать и устанавливать дополнительные модули вручную.


Python (duh), setuptools или pip, virtualenv и редактор. Я предлагаю Джини, но это только я. И конечно, любых других модулей Python вам понадобится.


переход на Python из .NET world

Прыжки в мир Linux с .NET / Windows фона может быть немного смущает (но я призываю вас продолжать пытаться Linux)

но я бы предложил всем, кто приходит из окон, придерживаться окон на некоторое время. Гото www.Activestate.com и загрузите их пакет Python - он включает в себя полные расширения win32com от Mark Hammond, а также включает в себя полную, быструю IDE "pythonwin"

Я сделал реальное профессиональное развитие только с этой настройкой только на Windows box-one 14MB .msi и вперед !

теперь для использования Python в DLR (Dynamic common language runtime) вам необходимо загрузить IronPython. Это отдельный интерпретатор, который также был первоначально написан Марком Хаммондом в Microsoft и находится в ironpython.org.

С этим вы можете запустить код, как (из Википедии)::

import clr
clr.AddReference("System.Windows.Forms")
from System.Windows.Forms import MessageBox
MessageBox.Show("Hello World")

теперь вы можете получить доступ любой .NET-код от python.


Если вы только начинаете с Python, я бы на самом деле возражал против привлечения сложности virtualenv (что, я думаю, может быть довольно подавляющим), по крайней мере, до тех пор, пока вы не получите четкое представление об основах Python (особенно в отношении управления библиотекой/зависимостями).

Если вы используете Ubuntu и среду рабочего стола Gnome,gedit является текстовым редактором по умолчанию (gui) и имеет отличную поддержку встроенного Python. Поэтому моя рекомендация-начать с предустановленного Python и gedit (т. е. довольно расширяемый сам по себе).


, вам не нужно много. Python поставляется с " батареями в комплекте."

Visual Studio = = простоя. У вас уже есть. Если вы хотите больше IDE-подобной среды, установите Komodo Edit.

NUnit ==unittest. Она уже есть в стандартной библиотеке.

SQL Server == sqlite. Она уже есть в стандартной библиотеке.

Перестаньте тратить время на подготовку. Он уже есть в базовом Python установка.

приступить к работе.

Linux, кстати, is в первую очередь среда разработки. Он был разработан и построен разработчиками для разработчиков. Windows-это среда конечного пользователя, которая должна быть дополнена для разработки.

Linux изначально был ориентирован на разработчиков. Все инструменты, которые вам нужны, либо уже есть, либо являются частью простых установок yum или RPM.


вы, вероятно, хотели дать NetBeans Python IDE выстрел. Вы можете использовать либо Windows / Linux.


базы данных: базы данных SQLite (встроенный). Вы, возможно, захотите, хоть с SQLAlchemy.

GUI: tcl встроен, но рекомендуется wxPython или pyQt.

Идов: я использую простоя (встроенный) на компьютере с Windows, текст. сообщ на Mac, но вы могли бы пункт PyDev. Я также слышал хорошие вещи о ulipad.

цифры: numpy.

быстрый встроенный код: много вариантов. Мне нравится boost weave (часть scipy), но вы можете посмотреть на ctypes (использовать DLL), Cython и т. д.

веб-сервер: слишком много вариантов. Django (плюс Apache) является самым большим.

модульное тестирование: встроенный.

Pyparsing, просто потому что.

BeautifulSoup (или другой хороший парсер HTML).

hg, git или какой-то другой хороший VC.

Trac или другая система ошибок.

О, и StackOverflow, если у вас есть какие-либо вопросы.