Sto scrivendo un file setup.py per un progetto Python in modo che possa distribuirlo. L'obiettivo è quello di creare un file .egg, ma sto cercando di farlo funzionare prima con distutils e un normale .zip.Perché non posso includere questi file di dati in una distribuzione Python usando distutils?
Questo è un progetto Eclipse pydev e la mia struttura dei file è qualcosa di simile:
ProjectName
src
somePackage
module1.py
module2.py
...
config
propsFile1.ini
propsFile2.ini
propsFile3.ini
setup.py
Ecco il mio codice setup.py finora:
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'])]
)
Quando eseguo questo (con sdist come un parametro della riga di comando), un file .zip viene generato con tutti i file python, ma i file di configurazione non sono inclusi. Ho pensato che questo codice:
data_files = [('config', ['..\config\propsFile1.ini',
'..\config\propsFile2.ini',
'..\config\propsFile3.ini'])]
indica che quei 3 file di configurazione specificati devono essere copiati in una directory "config" nella distribuzione zip. Perché questo codice non sta ottenendo nulla? Che cosa sto facendo di sbagliato?
(ho anche provato a giocare con i percorsi dei file di configurazione ... Ma nulla sembra aiutare. Sarebbe Python genera un errore o un avviso se il percorso non era corretto/file non è stato trovato?)
Grazie. Ottengo il seguente errore: 'avviso: nessun file trovato corrispondente a 'config \ *''. Ho provato a cambiare .. \ config \ * ma questo non aiuta neanche ... qualche idea? – froadie
C'è uno spazio tra '\' e '*'. Prova a rimuoverlo? In caso contrario, provare a utilizzare la barra diretta. Ho usato la barra diretta, ma poiché sembravi aver usato il backslash, ho sostituito '/' con '\' qui. Tuttavia, ho scoperto che l'utilizzo/NON causa realmente alcun problema su Windows. Se non funziona, basta controllare se si è sulla strada giusta per hardcoding i nomi dei file in esso, come: includono config/propsFile1.ini includono config/propsFile2.ini # ecc ... – Umang
Lo spazio era solo a causa della formattazione SO, quando li ho riuniti nascondeva la barra per qualche motivo. Cambiare la barra in avanti non fa la differenza ... Python sembra convertirlo automaticamente, lo stesso messaggio di errore. Ottieni lo stesso errore su singoli file ...: (Qualche indizio, cosa c'è che non va? È un problema di percorso? – froadie