Подтвердить что ты не робот

Лучший способ установить пакеты python локально для разработки

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

Программы, такие как gpodder, могут запускаться непосредственно из исходной проверки, которая действительно удобна, однако другие хотят быть "установлены" для запуска.

Многие программы распространяются вместе с setup.py с инструкциями по запуску "python./setup.py install" в качестве корня, который будет помещать что-то в вашу файловую систему. Существуют даже команды установки, такие как "разработка", которые, похоже, содержат обещание того, что я хочу. Поэтому я попробовал:

export PYTHONPATH=/home/alex/python
python ./setup.py develop --install-dir=/home/alex/python

Скачав кучу вещей локально и, кажется, волшебным образом гарантируем, что приложение, которое я взламываю, все еще заканчивается из дерева src. Итак, я думаю, что мой вопрос о кругообороте - это правильный способ разработки кода на Python? Как такие вещи, как easy_install и pip factor?

РЕДАКТИРОВАТЬ ДОБАВИТЬ

Итак, я попробовал следующее:

 python /usr/share/pyshared/virtualenv.py /home/alex/src/goobook
 cd /home/alex/src/goobook/googbook.git
 /home/alex/src/goobook/bin/python ./setup.py develop

И, наконец, связать рассматриваемую программу с моим ~/bin

 cd /home/alex/src/goobook
 linkbin.pl bin/goobook

Однако вызов вызывает лишнюю болтовню, которая, как представляется, ошибочна:


17:17 [email protected]/i686 [goobook] >goobook --help
/home/alex/bin/goobook:5: UserWarning: Module pkg_resources was already imported from        /home/alex/src/goobook/lib/python2.5/site-packages/setuptools-0.6c8-py2.5.egg/pkg_resources.py, but /home/alex/src/goobook/lib/python2.5/site-packages/distribute-0.6.10-py2.5.egg is being added to sys.path
  from pkg_resources import load_entry_point
/home/alex/bin/goobook:5: UserWarning: Module site was already imported from /home/alex/src/goobook/lib/python2.5/site.pyc, but /home/alex/src/goobook/lib/python2.5/site-packages/distribute-0.6.10-py2.5.egg is being added to sys.path
  from pkg_resources import load_entry_point

4b9b3361

Ответ 2

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

Начиная с 2012 года, де-факто предпочтительным инструментом для управления пакетами в Python является pip, а не setuptools. Pip может обрабатывать зависимости и устанавливать/удалять глобально или внутри виртуальной среды. Pip даже приходит из коробки с virtualenv.

Python 3

Также стоит упомянуть тот факт, что виртуальные среды становятся частью самого Python в версии 3.3 с реализацией PEP 405.

Ответ 3

Лучший способ разработки приложений Python с зависимостями состоит в следующем:

1) Загрузите желаемую версию интерпретатора python.

2) Установите и используйте buildout (http://www.buildout.org/).

Buildout - это нечто вроде Maven для Java (автоматически загружает все необходимые пакеты).

Таким образом, ваш интерпретатор Python не будет загрязнен сторонними пакетами (это важно, если вы будете запускать разработанное приложение на других машинах). Кроме того, вы можете интегрировать buildout с пакетом virtualenv (это позволяет создавать виртуальные интерпретаторы python для каждого проекта).

Ответ 4

Руководство пользователя Python Packaging, которое "должно стать авторитетным ресурсом о том, как упаковывать, публиковать и устанавливать дистрибутивы Python с использованием существующих инструментов", рекомендует использовать pip для установки в "режиме разработки":

pip install -e <path>

Таким образом, в корневом каталоге вашего пакета вы можете просто

pip install -e .

См. установка из локального исходного дерева.