Где вручную установить файлы Python - PullRequest
4 голосов
/ 06 августа 2010

У меня проблемы с setuptools в большем проекте, где пакет python должен быть "собран" из нескольких пакетов debian (каждый из которых содержит подпакет "main" пакета).Таким образом, мы решили установить файлы вручную вместо использования «setup.py install», но мы не уверены в том, какое место использовать.Сначала мы использовали каталог в / usr / share, который уже используем для других устанавливаемых нами материалов.Это работает нормально, за исключением того факта, что нам нужно возиться с PYTHONPATH перед запуском любого приложения.

Есть ли место в sys.path по умолчанию, где мы могли бы вместо этого устанавливать пакеты?Я думал о /usr/lib/python2.6/dist-packages (где файлы должны заканчиваться, когда вы тоже используете setuptools, не так ли?), Но я вроде неохотно пишу в такое местоэто с помощью пользовательских сценариев установки ... Кроме того, что, если Ubuntu переключается на 2.7, мы должны также перейти?Любая "лучшая практика", как сделать что-то подобное?Вся эта концепция site-packages / dist-packages настолько недокументирована: (

1 Ответ

2 голосов
/ 07 августа 2010

Трудно сказать, где вам нужно устанавливать пакеты Python, учитывая, что вы можете установить его где угодно. На мой взгляд, лучше всего поместить их в / usr / local / share / YOURPACKAGENAME, если они не были установлены с помощью apt-get (aptitude и т. Д.). В любом случае вам нужно создать небольшую оболочку вокруг ваших скриптов (ов) Python, которая вставляет путь (и), где ваши пакеты расположены в переменной "sys.path". Например, «yum» для Ubuntu по умолчанию помещает свои файлы в «/ usr / share / yum-cli», а скрипт «/ usr / bin / yum» содержит следующие строки:

#!/usr/bin/python

...

sys.path.insert(0, '/usr/share/yum-cli')
try:
    import yummain
    yummain.user_main(sys.argv[1:], exit_code=True)
except KeyboardInterrupt, e:
    ...

В качестве альтернативы, вы должны установить переменную окружения PYTHONPATH. В этом нет ничего плохого.

...