Estoy escribiendo un archivo setup.py para un proyecto de Python para que pueda distribuirlo. El objetivo es crear eventualmente un archivo .egg, pero estoy tratando de hacerlo funcionar primero con distutils y un .zip regular.¿Por qué no puedo incluir estos archivos de datos en una distribución de Python usando distutils?
Este es un proyecto de Eclipse pydev y mi estructura de archivos es algo como esto:
ProjectName
src
somePackage
module1.py
module2.py
...
config
propsFile1.ini
propsFile2.ini
propsFile3.ini
setup.py
Aquí está mi código setup.py hasta ahora:
from distutils.core import setup
setup(name='ProjectName',
version='1.0',
packages=['somePackage'],
data_files = [('config', ['..\config\propsFile1.ini',
'..\config\propsFile2.ini',
'..\config\propsFile3.ini'])]
)
Cuando ejecuto esto (con sdist como un parámetro de línea de comando), se genera un archivo .zip con todos los archivos de Python, pero los archivos de configuración no están incluidos. Pensé que este código:
data_files = [('config', ['..\config\propsFile1.ini',
'..\config\propsFile2.ini',
'..\config\propsFile3.ini'])]
indica que esos 3 archivos de configuración especificados deben copiarse en un directorio "config" en la distribución postal. ¿Por qué este código no está logrando nada? ¿Qué estoy haciendo mal?
(también he intentado jugar con las rutas de los archivos de configuración ... Pero nada parece ayudar. Would Python lanzar un error o advertencia si la ruta era incorrecta/no se encontró archivo?)
Gracias. Aparece el siguiente error: 'advertencia: no se encontraron archivos que coincidan con 'config \ *''. He intentado cambiar a .. \ config \ * pero eso tampoco ayuda ... ¿Alguna idea? – froadie
Hay un espacio entre '\' y '*'. Intenta eliminar eso? De lo contrario, intenta usar la barra diagonal. He usado la barra diagonal, pero como parecías haber usado la barra invertida, reemplacé '/' con '\' aquí. Sin embargo, he encontrado que usar/NO causa realmente ningún problema en Windows. Si nada funciona, simplemente comprobar si está en el camino correcto hardcoding nombres de los archivos en él, como: incluyen config/propsFile1.ini incluyen config/propsFile2.ini # etc ... – Umang
El espacio era solamente debido al formato SO - cuando los puse juntos escondió la barra por alguna razón. Cambiar a barra diagonal no hace la diferencia ... Python parece volver a convertirlo automáticamente, el mismo mensaje de error. Obtenga el mismo error en los archivos individuales ... :(¿Alguna pista de lo que está mal? ¿Es un problema de ruta? – froadie