Estoy desarrollando un huevo de Python que tiene varias dependencias .txt (son plantillas usadas para generar archivos por el huevo en sí), y estoy luchando para obtener esas dependencias copiadas en site-packages
durante setup.py install
. De acuerdo con la distribute
documentation ...Recursos de empaquetado con setuptools/distribute
sistema de archivos de mi paquete:
setup.py
package
|--- __init__.py
|--- main.py
|--- binary (calls main.py with pkg_resources.load_entry_point)
|--- templates
|--file1.txt
|--file2.txt
En setup.py:
setup(
[...]
eager_resources = ['templates/file1.txt', 'templates/file2.txt']
)
Dentro de mi paquete:
from pkg_resources import resource_string
tpl = resource_string(__name__, 'templates/file1.txt')
... esta combinación de configuración y sistema de archivos debería dar como resultado que file1.txt
y file2.txt
estén disponibles a través de pkg_resources.resource_string
. Lamentablemente, no se copian en site-packages
durante setup.py install
. ¿Qué me estoy perdiendo?
Gracias!
Excelente, gracias por la ayuda. ¿Le importaría aclarar la diferencia entre "archivos de datos" y "recursos", tal como se define en la documentación de setuptools a la que se vinculó? Estaba siguiendo las instrucciones de recursos, pero parecen ser cualitativamente diferentes. ¡Gracias! –
Bueno, su pregunta fue la primera vez que me encontré con los "recursos", así que también tengo curiosidad por saber para qué sirven. Pero los archivos de datos definitivamente son el camino a seguir para cosas como plantillas. – pcardune
Tenga en cuenta que no necesita usar zip_safe = False. En su lugar, use pkg_resources.resource_stream ('packagename', 'templates/file1.txt'). Read() y setuptools obtendrá la transmisión por usted desde el sistema de archivos o desde el huevo comprimido. –