La guía "Python Distribute" (estaba en python-distribute.org, pero ese registro ha caducado) me dice que incluya doc/txt
archivos y los .py
archivos están excluidos en el MANIFEST.in
archivo.
La documentación de sourcedist me dice que solo sdist usa MANIFEST.in
y solo incluye el archivo que usted especifica y para incluir .py
archivos. También me dice que use: python setup.py sdist --manifest-only
para generar un MANIFEST
, pero Python me dice que esto no existe
Aprecio que estos son de diferentes versiones de Python y el sistema de distribución está en un completo desastre, pero suponiendo que estoy usando Python 3 y setuptools
(el nuevo que incluye distribuir pero ahora se llama herramientas de configuración, no las herramientas de configuración antiguas que estaban obsoletas solo para distribuir herramientas volver a distribuir y distribuir renombrado a setuptools .....)
y sigo la estructura de carpetas y el setup.py
archivo "estándar" ,
- ¿Necesito un
MANIFEST.in
? - ¿Qué debería haber en él?
- ¿Cuándo se convertirán todos estos diferentes métodos y sistemas de paquetes en un solo proceso simple?
fuente
sdist
(significa: distribución de fuente ). Si considera quebdist
ybdist_wheel
son binarios y solo están destinados a instalarse en su ruta de Python, esto tiene sentido. (¿Dónde irían estos archivos y directorios que no son módulos? ¿En/usr/local/lib/python2.7/dist-packages/
? Seguramente no.) Pero vale la pena mencionarlo ya que es confuso ver el archivo creado y no incluir los archivos.package_data
y lasdata_files
recomendaciones, que están fuera de alcance, continuaré.package_data
enumera el archivo que se instala con su paquete en eldist-packages/yourpackage
que se habría omitido porque no tiene un nombre * .py.data_files
enumera los archivos que se instalan fuera de su paquete. Cada entrada especifica una ruta de destino que tiene como prefijosys.prefix
si es relativa o se crea directamente (si los permisos lo permiten) si comienza con/
.pbr
es una mala idea.Pregunta antigua, respuesta nueva:
No, no es necesario
MANIFEST.in
. Sin embargo, para llegarsetuptools
a hacer lo que (normalmente) quieres decir, necesitas usar elsetuptools_scm
, que asume el papel deMANIFEST.in
en 2 lugares clave:sdist
comando (donde todos los archivos relevantes se definen como "todos los archivos bajo control de fuente")include_package_data
para incluir datos del paquete como parte debuild
obdist_wheel
. (nuevamente: archivos bajo control de fuente)La comprensión histórica de
MANIFEST.in
es: cuando no tiene un sistema de control de fuente, necesita algún otro mecanismo para distinguir entre "archivos fuente" y "archivos que se encuentran en su directorio de trabajo". Sin embargo, su proyecto está bajo control de fuente (¿verdad?), Por lo que no es necesarioMANIFEST.in
. Más información en este artículo .fuente