Ho scritto un modulo di estensione Python in C++. Ho intenzione di distribuire il modulo con setuptools. Ci saranno distribuzioni binarie per Windows a 32 e 64 bit (compilate con setup.py bdist_egg
) e una distribuzione di origine per piattaforme simili a UNIX (create con setup.py sdist
).Come includere il file di licenza nello script setup.py?
Ho intenzione di concedere in licenza il modulo sotto la licenza BSD. Nel mio albero dei sorgenti, il file LICENSE.txt si trova nella cartella superiore insieme a setup.py. Come dovrei includerlo nel pacchetto di installazione?
Ho provato il seguente script setup.py:
from setuptools import setup, Extension
from glob import glob
setup(
name = 'Foo',
version = '0.1.0',
ext_modules = [Extension('Foo', glob('Source/*.cpp'))],
package_data = {'': ['LICENSE.txt']}
)
Non ha funzionato, il file di licenza non è incluso nel pacchetto di installazione. Forse perché il file setup.py non definisce alcun pacchetto, solo un singolo modulo di estensione.
Come posso risolvere questo problema?
"LICENSE.txt" deve essere ["LICENSE.txt"]. Il percorso "/" è la root di sistema su UNIX e non esiste su Windows; quando ho provato su Windows ho ricevuto un messaggio di errore su un percorso non esistente. Usare "" invece sembra funzionare; quando ho testato LICENSE.txt è finito nella cartella "C: \ Python27 \ Lib \ site-packages \ Foo-0.1.0-py2.7-win32.egg", la stessa cartella di Foo.pyd – user763305
@ user763305: I ho modificato la mia risposta con le tue osservazioni, mi dispiace. Se la mia risposta ha risolto il problema, considera di contrassegnarlo come accettato facendo clic sul segno di spunta a sinistra della mia risposta. – orlp