私はいくつかの.txt依存関係を持つPythonの卵を開発しています(これらは卵自体でファイルを生成するためのテンプレートです)、私はその依存関係をsite-packages
にコピーするのに苦労しています。 setup.py install
。私のパッケージのdistribute
documentation ...setuptools/distributeでリソースをパッケージ化する
ファイルシステムによると:
from pkg_resources import resource_string
tpl = resource_string(__name__, 'templates/file1.txt')
:私のパッケージ内
setup(
[...]
eager_resources = ['templates/file1.txt', 'templates/file2.txt']
)
:setup.pyで
setup.py
package
|--- __init__.py
|--- main.py
|--- binary (calls main.py with pkg_resources.load_entry_point)
|--- templates
|--file1.txt
|--file2.txt
...この構成とファイルシステムの組み合わせは、file1.txt
とfile2.txt
がpkg_resources.resource_string
で利用可能になるはずです。残念ながら、彼らはsetup.py install
の間にsite-packages
にコピーされていません。私は何が欠けていますか?
ありがとうございます!
優秀、ありがとうございました。リンクしているsetuptoolsのドキュメントで定義されている "データファイル"と "リソース"の違いを明確にしてもよろしいですか?私はリソースの指示に従っていましたが、質的に異なると思われます。ありがとう! –
さて、あなたの質問は私が "資源"に出会ったのは初めてでした。しかし、データファイルは確かにテンプレートのようなものに行く方法です。 – pcardune
zip_safe = Falseを使用する必要はありません。代わりに、pkg_resources.resource_stream( 'packagename'、 'templates/file1.txt')を使用してください。read()とsetuptoolsはファイルシステムから、または圧縮されたeggからストリームを取得します。 –