fonti che ho trovato più (https://docs.python.org/3/distutils/sourcedist.html#specifying-the-files-to-distribute, http://blog.ionelmc.ro/2014/05/25/python-packaging/, http://blog.ionelmc.ro/2014/06/25/python-packaging-pitfalls/) che suggeriscono che il modo per distribuire i file di dati in un pacchetto Python è quello di utilizzare l'opzione di include_package_data
setuptools e MANIFEST.in
. I file nel mio pacchetto così assomigliano,Dove installa setup.py file di dati all'interno di una virtualenv?
setup.py
setup( # ... include_package_data = True, # ...
con il resto del file (si spera irrilevante) eliso.
MANIFEST.IN
graft testdata include ChangeLog include README.rst include COPYING include COPYING.LESSER include tox.ini
Quando eseguo setup.py install
o utilizzare pip in un virtualenv, io alla fine con la sorgente Python file stessi, ma senza testdata/
ovunque posso trovarlo. Pensavo che si trattasse di un errore nella mia confezione, tranne che quando prendo un altro pacchetto con un layout simile, non riesco nemmeno a trovare i file di dati. Se clonifico il repository per il pacchetto di esempio https://github.com/ionelmc/python-nameless e lo installo utilizzando , il pacchetto viene installato nella directory lib/python3.4/site-packages/nameless-0.1.0-py3.4.egg/nameless/
. Tuttavia, non riesco a trovare nessuno dei file di dati o dei test in nessuna parte del virtualenv. Dove dovrebbero finire? Come dovrebbe funzionare?
La mia motivazione per questa domanda è che un altro collaboratore di un progetto desidera che i test, che richiedono i file di dati, vengano eseguiti da un'installazione di pip. È questo l'approccio giusto in primo luogo?
Usa 'pkg_resources' per scoprire i file di dati. Vedere la mia [risposta] (http://stackoverflow.com/a/34788912/3626079) per domande simili. – ziky