2016-03-15 19 views
11

Penso che questa sia una domanda facile, ma non ho ancora trovato una risposta, quindi sto postando qui.Python wheel force ABI su "none"

Ho un'applicazione Python 3, che impacchetta in una piattaforma. Ho il setup.py e tutto funziona come previsto. L'unica cosa che non riesco a capire è che la ruota generata include sempre un tag ABI (come "cp34m"), e quando questo è incluso trovo che non posso effettivamente installare la ruota tramite pip. (Il mio script di build installa gli ultimi pip, setuptools e wheel prima dell'esecuzione.)

La soluzione è semplice. Ho appena cambiato il nome del file della ruota per cambiare "cp34m" in "none". Questo è ovviamente facile da aggiungere al mio script di compilazione, ma mi chiedo se sia possibile impostare un'opzione per bdist_wheel o qualcosa del genere in modo che il file .whl generato non ne abbia impostato nessuno a sé stante?

Il comando che uso per creare la ruota è (ad esempio su x64):

python setup.py bdist_wheel --plat-name win_amd64

che crea una ruota del tipo:

mpf_mc-0.30.0.dev269-cp34-cp34m-win_amd64.whl

che ho poi rinominare prima di caricare a PyPI a:

mpf_mc-0.30.0.dev269-cp34-none-win_amd64.whl

Tutto sembra funzionare correttamente rinominandolo manualmente. Ma mi chiedo se questo è il modo giusto per farlo, o mi sto perdendo qualcosa?

+0

Ho la stessa domanda e sono confuso da questo. http://stackoverflow.com/questions/35005870/christoph-gohlke-naming-convention-for-unofficial-windows-binaries-for-python-ex?rq=1 non mi ha illuminato neanche io. – Stephan

risposta

0

Sembra che qualcosa è cambiato da quando avete inviato la tua domanda - ho appena provato il vostro comando per creare un file di ruota sul mio progetto:

~$ python setup.py bdist_wheel --plat-name win_amd64 

e il file risultato è:

my_project-1.0.0-py2-none-win_amd64.whl