Poniższy jeden jest sposób, aby osiągnąć swój cel. Istnieją inne, prawdopodobnie lepsze sposoby (np. Oparte na Visual Studio), ale ten działał dla mnie. Ponadto nie używa ona pip
.
Wszystkie operacje są wykonywane w wierszu polecenia.
- Zainstaluj Mingw, w tym MSYS i zestaw narzędzi programistycznych. Zapewni to dość kompletne środowisko programistyczne typu Unix.
- Upewnij się, że pliki binarne Mingw są w zmiennej środowiskowej PATH. Potrzebujesz
MinGW\bin
i MingGW\msys\1.0\bin
.
- Pobierz MPIR źródła w katalogu tymczasowym. Ważne jest, abyś robił nie używać 2.5.1 z powodu błędu, który złamie kompilację. 2.5.0 jest w porządku.
- Zbuduj bibliotekę MPIR. Jest to dość proste: wykonaj
bash configure
, a następnie make
.
- HACK # 1 Skopiuj
libmpir.a
z mpir-2.5.0\.libs
do C:\Python2.7.1\libs
. Jest to konieczne, ponieważ distutils
jest zepsuty i nie mogłem znaleźć sposobu na przekierowanie go do właściwej lokalizacji biblioteki.
- HACK # 2 Edytuj
C:\Python2.7.1\Lib\distutils\cygwincompiler.py
i usuń wszystkie wystąpienia ciągu znaków -mno-cygwin
. Powód jest wyjaśniony here.
- Pobierz PyCrypto źródła i rozpakuj je w innym katalogu tymczasowym.
- Ustaw zmienną środowiskową na katalog MPIR, który zawiera
mpir.h
.
HACK 3 Edycja setup.py
i dodać następujące linię build_extension
sposób:
siebie .__ add_compiler_option (os.environ [ 'CPPFLAGS'])
Run bash configure
. Powinieneś zobaczyć dwie linie mówiąc:
sprawdzanie __gmpz_init w -lgmp ... no
sprawdzanie __gmpz_init w -lmpir ... tak
- Execute
python setup.py build -c mingw32
. Nie powinno być żadnych błędów.
- Wykonaj
python setup.py test
, aby sprawdzić, czy wszystko jest w porządku.
- Wykonaj
python setup.py install
, aby skopiować pliki do lokalnego repozytorium Pythona.
- Alternatywnie, uruchom
python setup.py bdist_wininst
, aby utworzyć instalator.
Naprawdę nienawidzę wszystkich różnych hacków i bardzo chciałbym usłyszeć, czy można ich uniknąć.
Która wersja systemu Windows? 32-bitowy lub 64-bitowy? – SquareRootOfTwentyThree
Windows7 64-bit – scherlock
Prostsze rozwiązanie tutaj: http://stackoverflow.com/questions/15432010/exception-while-installing-packages-in-python/30620019#30620019 –