Как включить библиотеку 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/