Как настроить среду разработки Python в Linux? - PullRequest
12 голосов
/ 24 марта 2010

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

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

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

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

Ответы [ 10 ]

18 голосов
/ 24 марта 2010

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

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


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

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

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

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

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

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

Для того, чтобы уменьшить вероятность выполнения / прерывания установки системы python, я обычно устанавливаю virtualenv при установке 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

При создании нового пакета ... чтобы иметь что-то, что будет легко_установлено / pippable, используйте paster 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

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

4 голосов
/ 24 марта 2010

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

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

3 голосов
/ 24 марта 2010

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

На тот случай, если вы его еще не видели, посмотрите книгу Dive Into Python , бесплатную онлайн. http://www.diveintopython.org/

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

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

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

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

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

2 голосов
/ 05 июля 2011

Знакомство с Python из мира .NET

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

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

Я сделал настоящее профессиональное развитие только с одной этой установкой на коробке Windows - один 14MB .msi и все готово!

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

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

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

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

2 голосов
/ 24 марта 2010

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

1 голос
/ 24 марта 2010

Вам не нужно много. Python поставляется с «Батареями в комплекте».

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

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

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

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

Доберитесь до работы.

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

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

1 голос
/ 24 марта 2010

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

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

0 голосов
/ 24 марта 2010

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

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

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

Цифры: NumPy.

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

Веб-сервер: слишком много опций. Джанго (плюс Апач) самый большой.

Юнит-тестирование: встроенное.

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

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

рт.ст., мерзавец или какой-нибудь другой хороший венчур.

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

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

0 голосов
/ 24 марта 2010

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

...