2016-03-15 16 views
11

Myślę, że to łatwe pytanie, ale nie znalazłem jeszcze odpowiedzi, więc zamieszczam tutaj.Python Wheel Force ABI "none"

Mam aplikację Python 3, którą pakuję do koła platformy. Mam plik setup.py i wszystko działa zgodnie z oczekiwaniami. Jedyne, czego nie mogę zrozumieć, to wygenerowane koło zawsze zawiera znacznik ABI (np. "Cp34m"), a gdy to uwzględni, stwierdzam, że nie mogę faktycznie zamontować koła za pośrednictwem pip. (Mój skrypt instalacyjny instaluje najnowsze pip, setuptools i wheel przed uruchomieniem.)

Rozwiązanie jest proste. Po prostu zmieniam nazwę pliku koła, aby zmienić "cp34m" na "none". Jest to oczywiście łatwe do dodania do mojego skryptu budowania, ale zastanawiam się, czy można ustawić opcję bdist_wheel lub coś takiego, aby wygenerowany plik .whl nie ustawił się sam?

Komenda użyć do utworzenia koła jest (na przykład na x64):

python setup.py bdist_wheel --plat-name win_amd64

To tworzy koło, takich jak:

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

Które Potem przemianowania przed przesłaniem do PyPI do:

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

Wszystko wydaje się działać poprawnie, ręcznie zmieniając jego nazwę. Zastanawiam się jednak, czy to właściwy sposób, czy też czegoś brakuje?

+0

Mam to samo pytanie i jestem tym zaskoczony. http://stackoverflow.com/questions/35005870/christoph-gohlke-naming-convention-for-unofficial-windows-binaries-for-python-ex?rq=1 też mnie nie oświeciło. – Stephan

Odpowiedz

0

Wydaje się, że coś się zmieniło od kiedy pisał swoje pytanie - po prostu próbowała swoją komendę, aby utworzyć plik koło na moim projekcie:

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

a plik wynik jest:

my_project-1.0.0-py2-none-win_amd64.whl