Можно ли использовать модуль Python, который не установлен в каталогах Python в Linux? - PullRequest
3 голосов
/ 31 июля 2009

У меня есть приложение на python, которое зависит от модуля uuid, но на сервере, где мне нужно его запустить, uuid не установлен. У меня нет root на сервере, поэтому я не могу поместить uuid .pys в папку /usr/lib/python2.4/site-packages ... Есть ли способ использовать .py из другого места? как мой ~?

Ответы [ 5 ]

5 голосов
/ 31 июля 2009

Есть несколько способов сделать это. Самая быстрая - простая команда:

export PYTHONPATH=path/to/module/directory

Кроме того, вы можете использовать virtualenv. Просто sudo apt-get установите python-virtualenv (?). Это очень распространенный инструмент разработки, используемый для использования модулей, которые не обязательно устанавливать при локальной установке Python.

1 голос
/ 06 августа 2009

Если бы это был один модуль, я бы подумал включить его в путь моего проекта. Если это что-то более сложное (например, пакет, двоичные файлы и т. Д.), И я не хочу изменять проект sys.path (например, потому что это источник Django и я не хочу связываться с обновлениями), я устанавливаю где-то пакет, а затем я добавляю путь к файлу .pth в каталоге моего проекта (текущий каталог всегда находится в пути Python.) Таким образом, вам не нужно играть с вашим PYTHONPATH или проектом sys.path.

Вы можете проверить формат pth файлов здесь:

http://bob.pythonmac.org/archives/2005/02/06/using-pth-files-for-python-development/

0 голосов
/ 31 июля 2009

Чтобы обсудить это в будущем, в [PEP 370] [1] есть хорошая статья в блоге, объясняющая, как это работает здесь [http://jessenoller.com/2009/07/19/pep-370-per-user-site-packages-and-environment-stew/][2].

Для установки пакетов вы также можете взглянуть на [virtualenv] [3] и [pip] [4], которые дают вам идеальный способ создания чистой среды.

0 голосов
/ 31 июля 2009

Python ищет модули для импорта с помощью переменной sys.path. Вы можете изменить это в своей программе, чтобы указать новые модули, в которых нуждается ваша программа. По умолчанию это будет включать в себя собственный каталог программ, а также системные каталоги python, но вы, безусловно, можете добавить к нему что угодно.

Ссылка на документы!

0 голосов
/ 31 июля 2009

Да, нет необходимости устанавливать большинство модулей Python. uuid.py достаточно прост, вам вообще не нужно его собирать или устанавливать. Просто загрузите его , распакуйте его и поместите файл uuid.py в свой каталог с вашим кодом. «import uuid» будет работать (текущий рабочий каталог находится в пути Python). Этот хак прекрасно работает, пока вы не приступите к серьезному управлению развертыванием приложений.

Кстати, я считаю, что модуль uuid уже установлен с Python 2.5 и выше.

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