По умолчанию используйте другой каталог site-packages для установки.

Я встроил Python в приложение. Когда пользователь устанавливает пакет или модуль через

{...}\myapp\python\python.exe setup.py install

пакеты будут установлены в

{...}\myapp\python\lib\site-packages

Есть ли шанс использовать другой каталог по умолчанию?

3 ответа

Решение

Есть несколько вещей, о которых вам нужно позаботиться, чтобы сделать это. Я провел некоторое исследование, и вот что я узнал:

Эта часть взята из документации Python:

После запуска команды build (независимо от того, выполняете ли вы ее явно или команда install делает это за вас), работа команды install относительно проста: все, что нужно сделать, это скопировать все в build / lib (или build / lib). plat) в выбранный вами каталог установки.

Если вы не выберете установочный каталог, т. Е. Просто запустите setup.py install, то команда install установится в стандартное расположение сторонних модулей Python. Это расположение зависит от платформы и способа сборки / установки самого Python.

Большинство дистрибутивов Linux включают в себя Python как стандартную часть системы, поэтому префикс и exec-prefix, как правило, оба / usr в Linux. Если вы собираете Python самостоятельно в Linux (или в любой Unix-подобной системе), префикс по умолчанию и префикс exec - это / usr / local.

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

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

Команда установки Distutils предназначена для простой и безболезненной установки дистрибутивов модулей в другое место. Основная идея заключается в том, что вы предоставляете базовый каталог для установки, а команда install выбирает набор каталогов (называемый схемой установки) в этом базовом каталоге, в который нужно установить файлы. Детали различаются для разных платформ, поэтому прочитайте, какой из следующих разделов относится к вам.

Идея "домашней схемы" заключается в том, что вы создаете и поддерживаете личный запас модулей Python. Название этой схемы происходит от идеи "домашнего" каталога в Unix, поскольку для пользователя Unix весьма характерно, чтобы его домашний каталог имел макет, похожий на / usr / или / usr / local /. Эта схема может использоваться кем угодно, независимо от операционной системы, для которой они устанавливаются.

python setup.py install --home=<dir>

--home Опция определяет базовый каталог установки. Файлы устанавливаются в следующие каталоги под установочной базы следующим образом:

modules home/lib/python
scripts home/bin
data    home
C headers   home/include/python/distname

Затем вам нужно изменить путь поиска Python, чтобы найти новое местоположение.

Вы также можете использовать параметр --prefix, который определяет базу установкиpython setup.py install --prefix=, Подробнее об этом здесь


Подводя итог, вы можете изменить домашний каталог, но в нем будет построена иерархия пакетов сайта. Надеюсь это поможет.

Чтобы добавить новый каталог site-packages, добавьте этот новый путь к файлу конфигурации пути.

Файл конфигурации пути позволит вам добавить дополнительный каталог site-packages. Если вам не нужен существующий каталог site-packages, вы можете удалить его из PYTHON_PATH.

echo "new_site-package_directory"> your_site_packages_path / usrlocal.pth

Я надеюсь, что это поможет вам Установка пользовательского модуля Python

Другие вопросы по тегам