Я разрабатываю яйцо Python с несколькими зависимостями .txt (они являются шаблонами, используемыми для генерации файлов самим яйцом), и я изо всех сил пытаюсь получить эти зависимости, скопированные в site-packages
во время setup.py install
. Согласно distribute
documentation ...Ресурсы упаковки с setuptools/распространение
Filesystem моего пакета:
setup.py
package
|--- __init__.py
|--- main.py
|--- binary (calls main.py with pkg_resources.load_entry_point)
|--- templates
|--file1.txt
|--file2.txt
В setup.py:
setup(
[...]
eager_resources = ['templates/file1.txt', 'templates/file2.txt']
)
В моем пакете:
from pkg_resources import resource_string
tpl = resource_string(__name__, 'templates/file1.txt')
... эта комбинация конфигурации и файловой системы должна приводить к тому, что file1.txt
и file2.txt
доступны через pkg_resources.resource_string
. К сожалению, они не копируются в site-packages
во время setup.py install
. Что мне не хватает?
Спасибо!
Отлично, спасибо вам за помощь. Не могли бы вы пояснить разницу между «файлами данных» и «ресурсами», как это определено документацией setuptools, с которой вы связаны? Я следил за инструкциями по ресурсам, но они кажутся качественно разными. Благодаря! – 2009-11-14 01:34:33
Ну, ваш вопрос был в первый раз, когда я когда-либо сталкивался с «ресурсами», поэтому мне тоже интересно, за что они нужны. Но файлы данных, безусловно, подходят для таких вещей, как шаблоны. – pcardune
Обратите внимание, что вам не нужно использовать zip_safe = False. Вместо этого используйте pkg_resources.resource_stream ('packagename', 'templates/file1.txt'). Read() и setuptools получат поток для вас из файловой системы или из застрявшего яйца. –