Как включить библиотеку python.egg, которая находится в подкаталоге (относительное местоположение)?
Как вы импортируете файлы python.egg, которые хранятся в относительном местоположении в .py-код?
Например,
My Application/
My Application/library1.egg
My Application/libs/library2.egg
My Application/test.py
Как импортировать и использовать библиотеки1 и library2 из test.py, оставив библиотеки .egg на месте?
Ответы
Ответ 1
An.egg - это просто .zip файл, который действует как каталог, из которого вы можете импортировать материал.
Вы можете использовать переменную PYTHONPATH
, чтобы добавить .egg
к вашему пути или добавить каталог в
sys.path
. Другой вариант - использовать файл .pth
, указывающий на яйца.
Подробнее см. Небольшое введение в яйца Python, Яйца Python и Все о яйцах.
Например, если ваш library1.egg
содержит пакет с именем foo
, и вы добавляете library1.egg
в PYTHONPATH
, вы можете просто import foo
Если вы не можете установить PYTHONPATH
, вы можете написать:
import sys
sys.path.append("library1.egg")
import foo
Ответ 2
Вы можете включить каждое яйцо в sys.path или создать файл .pth, в котором упоминается каждое яйцо.
Если у вас много яиц, которые вам нужны в вашей системе, я бы рекомендовал использовать что-то вроде buildout, что сделает установку легко реплицируемой. Он будет обрабатывать яйца для вас.
http://pypi.python.org/pypi/zc.buildout/