Cómo excluir un solo archivo del paquete con setuptools y setup.py

Estoy trabajando en blowdrycss . El repository está aquí .

Quiero que el archivo de configuración para blowdrycss_settings.py sea ​​excluido del paquete final en pypi. La intención es crear dinámicamente un archivo de configuración personalizado que se colocará en la carpeta virtualenv / project del usuario.

En setup.py , tengo lo siguiente:

 packages=find_packages(exclude=['blowdrycss_settings.py', ]), 

También probé exclude_package_data :

 exclude_package_data={ '': ['blowdrycss_settings.py'], '': ['blowdrycss/blowdrycss_settings.py'], 'blowdrycss': ['blowdrycss_settings.py'], }, 

Luego ejecuto python setup.py sdist bdist .

Sin embargo, cuando miro en la carpeta de comstackción todavía veo blowdrycss_settings.py :

 - build - lib - blowdrycss_settings.py 

Parece que debería ser simple simplemente excluir un archivo.

¿Cómo excluyo blowdrycss_settings.py del paquete distribuido?

Aquí está mi solución.

Debajo de blowdrycss , creé un nuevo módulo llamado settings para que la estructura del directorio ahora tenga este aspecto:

 blowdrycss blowdrycss settings blowdrycss_settings.py 

Según esta referencia , dentro de setup.py tengo lo siguiente:

 packages=find_packages(exclude=['*.settings', ]), 

Para construir la distribución:

  1. Elimina las carpetas build , dist y .egg-info .
  2. Ejecuta python setup.py sdist bdist

En retrospectiva, es bueno que no haya podido hacer lo que originalmente estaba intentando. La nueva estructura se siente más limpia y es más modular.