Zajmuję się tworzeniem jajek w Pythonie z kilkoma zależnościami .txt (są to szablony używane do generowania plików przez samo jajko), i staram się uzyskać te zależności skopiowane do site-packages
podczas setup.py install
. Według distribute
documentation ...Pakowanie zasobów za pomocą setuptools/distribute
systemie plików moim pakiecie:
setup.py
package
|--- __init__.py
|--- main.py
|--- binary (calls main.py with pkg_resources.load_entry_point)
|--- templates
|--file1.txt
|--file2.txt
W setup.py:
setup(
[...]
eager_resources = ['templates/file1.txt', 'templates/file2.txt']
)
ciągu mojego pakietu:
from pkg_resources import resource_string
tpl = resource_string(__name__, 'templates/file1.txt')
... ta kombinacja konfiguracji i systemu plików powinna spowodować, że file1.txt
i file2.txt
będą dostępne przez pkg_resources.resource_string
. Niestety nie są one kopiowane do site-packages
podczas setup.py install
. czego mi brakuje?
Dzięki!
Doskonale, dziękuję za pomoc. Czy mógłbyś wyjaśnić różnicę między "plikami danych" i "zasobami", zgodnie z dokumentacją setuptools, z którą się łączyłeś? Postępowałem zgodnie z instrukcjami dotyczącymi zasobów, ale wydaje się, że są jakościowo inne. Dzięki! –
Cóż, twoje pytanie było pierwszym razem, gdy natknąłem się na "zasoby", więc jestem ciekawy, po co są. Ale pliki danych to zdecydowanie droga do takich rzeczy jak szablony. – pcardune
Pamiętaj, że nie musisz używać zip_safe = False. Zamiast tego użyj pkg_resources.resource_stream ("nazwa-pakietu", "templates/file1.txt"). Read() i setuptools otrzymają strumień dla ciebie z systemu plików lub z skompresowanego jajka. –