Вопрос

У меня проблемы с SetUpewsools в более крупном проекте, где пакет Python должен быть «построен» из нескольких пакетов Debian (каждый из которых содержит подразделение «основного» пакета). Таким образом, мы решили установить файлы Manully вместо использования «Setup.py Install», но мы не уверены в том, чтобы использовать местоположение. Сначала мы использовали каталог в / usr / Share, который мы уже используем для других вещей, которые мы устанавливаем. Это работает нормально, за исключением того, что мы должны беспокоиться с Pythonpath перед запуском любого приложения.

Есть ли место, где находится в по умолчанию Sys.Path, где мы могли вместо этого установить пакеты? Я думал о /usr/lib/packagehon2.6/dist-packages (где файлы должны быть в конечном итоге, когда они тоже используете setewwoodools, которые они не должны быть?), Но я своего рода неохотно написал в таком месте Это с пользовательской установкой скриптов ... Кроме того, что если Ubuntu переключается на 2.7, мы должны двигаться так же хорошо? Любая «лучшая практика», как это сделать что-то подобное? Этот весь сайт-пакеты / Dist-Packages Concept настолько недооценен :(

Это было полезно?

Решение

Это сложно сказать, где вам нужно установить пакеты Python с учетом того, что на самом деле вы можете установить его где угодно. Лучшее место, на мой взгляд, это поставить их в / usr / local / Share / yourpackageName в случае, если он не был установлен APT-Get (Aptitude etc ...). В любом случае, вы должны создать небольшую обертку вокруг вас скрипт (ы) Python, который вставляет путь (ы), где ваша пакета (ы) находятся в переменной «Sysspath». Например, «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. Там нет ничего плохого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top