Recursos de empaquetado con setuptools / Distribuir

Estoy desarrollando un huevo de Python que tiene varias dependencias .txt (son plantillas usadas para generar archivos por el propio huevo), y estoy luchando para que esas dependencias se copien en site-packages durante la setup.py install . Según la documentación de 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 resultar en que file1.txt y file2.txt estén disponibles a través de pkg_resources.resource_string . Desafortunadamente, no se están copiando en site-packages durante la setup.py install . ¿Qué me estoy perdiendo?

¡Gracias!

¿Ha consultado la documentación de setuptools para incluir datos de paquetes aquí: http://peak.telecommunity.com/DevCenter/setuptools#including-data-files?

Básicamente, solo necesitas establecer include_package_data=True en tu archivo setup.py. Si está utilizando Subversion o CVS, se incluirán todos los archivos versionados. De lo contrario, puede especificar qué archivos incluir con un archivo MANIFEST.in.

Creo que Distribuir apoya esto también.

A continuación, puede acceder a los archivos como lo haría sin que estén empaquetados. es decir, en main.py usted podría tener:

 import os.path f = open(os.path.join(os.path.dirname(__file__),'templates','file1.txt')) print f.read() f.close() 

y esto funcionaría también en la versión empaquetada. Una advertencia es que también deberá configurar zip_safe = False en setup.py para que todos los archivos se descompriman durante la instalación.