J'écris un fichier setup.py pour un projet Python afin que je puisse le distribuer. Le but est de créer éventuellement un fichier .egg, mais j'essaye de le faire fonctionner d'abord avec distutils et un .zip régulier.Pourquoi ne puis-je pas inclure ces fichiers de données dans une distribution Python en utilisant distutils?
C'est un projet pydev éclipse et ma structure de fichier est quelque chose comme ceci:
ProjectName
src
somePackage
module1.py
module2.py
...
config
propsFile1.ini
propsFile2.ini
propsFile3.ini
setup.py
Voici mon code setup.py jusqu'à présent:
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'])]
)
Quand je lance ce (avec sdist comme un paramètre de ligne de commande), un fichier .zip est généré avec tous les fichiers python - mais les fichiers de configuration ne sont pas inclus. Je pensais que ce code:
data_files = [('config', ['..\config\propsFile1.ini',
'..\config\propsFile2.ini',
'..\config\propsFile3.ini'])]
indique que les 3 fichiers de configuration spécifiés doivent être copiés dans un répertoire « config » dans la distribution zip. Pourquoi ce code n'atteint-il rien? Qu'est-ce que je fais mal?
(j'ai aussi essayé de jouer avec les chemins des fichiers de configuration ... Mais rien ne semble aider. Would Python jeter une erreur ou d'avertissement si le chemin était incorrect/fichier n'a pas été trouvé?)
Merci. Je reçois l'erreur suivante: 'warning: aucun fichier trouvé correspondant à config \ * ''. J'ai essayé de changer pour .. \ config \ * mais cela n'aide pas non plus ... des idées? – froadie
Il y a un espace entre '\' et '*'. Essayez de supprimer cela? Sinon, essayez d'utiliser la barre oblique. J'ai utilisé la barre oblique, mais parce que vous sembliez avoir utilisé le backslash, j'ai remplacé '/' par '\' ici. Cependant, j'ai trouvé que l'utilisation/ne pose pas vraiment de problèmes sur Windows. Si rien ne fonctionne, il suffit de vérifier si vous êtes sur la bonne voie par les noms de fichiers hardcoding en elle, comme: comprennent config/propsFile1.ini comprennent config/propsFile2.ini # etc ... – Umang
L'espace était seulement en raison de la mise en forme SO - quand je les ai mis ensemble, il a caché la barre oblique pour une raison quelconque. Passer en barre oblique ne fait pas de différence ... Python semble le reconvertir automatiquement, même message d'erreur. Obtenez la même erreur sur les fichiers individuels ... :(aucune indication ce qui ne va pas? Est-ce un problème de chemin? – froadie