Лучший способ установить пакеты Python локально для разработки - PullRequest
18 голосов
/ 19 июля 2010

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

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

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

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 alex@socrates/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

Ответы [ 4 ]

11 голосов
/ 19 июля 2010

Установка:

http://pypi.python.org/pypi/virtualenv

для настройки локализованной виртуальной среды для ваших библиотек и:

http://pypi.python.org/pypi/setuptools

т.е.easy_install "для установки новых вещей.

5 голосов
/ 02 октября 2012

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

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

Python 3

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

1 голос
/ 13 апреля 2016

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

pip install -e <path>

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

pip install -e .

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

0 голосов
/ 19 июля 2010

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...