Di seguito uno è un modo per raggiungere il tuo obiettivo. Ci sono altri, probabilmente modi migliori (ad esempio basati su Visual Studio), ma questo ha funzionato per me. Inoltre, non utilizza pip
.
Tutte le operazioni vengono eseguite al prompt dei comandi.
- Installare Mingw, inclusi MSYS e il toolkit di sviluppo. Questo ti darà un ambiente di sviluppo simile a Unix abbastanza completo.
- Verificare che i file binari Mingw siano nella variabile di ambiente PATH. Hai bisogno di
MinGW\bin
e MingGW\msys\1.0\bin
.
- Scarica le fonti MPIR in una directory temporanea. È importante eseguire non utilizzare 2.5.1 a causa di un bug che interromperà la generazione. 2.5.0 va bene.
- Costruisci la libreria MPIR. Questo è abbastanza semplice: eseguire
bash configure
seguito da make
.
- HACK # 1 Copia
libmpir.a
da mpir-2.5.0\.libs
a C:\Python2.7.1\libs
. Ciò è necessario perché distutils
è danneggiato e non sono riuscito a trovare un modo per indirizzarlo al percorso della libreria corretto.
- HACK # 2 Modificare
C:\Python2.7.1\Lib\distutils\cygwincompiler.py
e rimuovere qualsiasi occorrenza della stringa -mno-cygwin
. Il motivo è spiegato here.
- Scaricare PyCrypto fonti e decomprimerle in un'altra directory temporanea.
- Impostare la variabile di ambiente
CPPFLAGS
nella directory MPIR, che contiene mpir.h
.
HACK 3 Modifica setup.py
e aggiungere la seguente riga nel build_extension
metodo:
self .__ add_compiler_option (os.environ [ 'CPPFLAGS'])
Run bash configure
. Si dovrebbe vedere due linee dicendo:
controllando per __gmpz_init in -lgmp ... no
controllando per __gmpz_init in -lmpir ... sì
- Execute
python setup.py build -c mingw32
. Non dovresti vedere errori.
- Eseguire
python setup.py test
per verificare che tutto funzioni correttamente.
- Esegui
python setup.py install
per copiare i file nel repository Python locale.
- In alternativa, eseguire
python setup.py bdist_wininst
per creare un programma di installazione.
Odio davvero tutti i vari hack, e mi piacerebbe sapere se possono essere evitati.
Quale versione di Windows? 32 bit o 64 bit? – SquareRootOfTwentyThree
Windows7 64-bit – scherlock
Una soluzione più semplice qui: http://stackoverflow.com/questions/15432010/exception-while-installing-packages-in-python/30620019#30620019 –