web-dev-qa-db-fra.com

Comment installer PyCrypto sur Windows?

J'ai lu toutes les sources Google et tous les fils SO, mais rien ne fonctionne.

Python 2.7.3 32bit installé sur Windows 7 64bit. Téléchargez, extrayez puis tentez d'installer les résultats PyCrypto dans "Unable to find vcvarsall.bat".

J'ai donc installé MinGW et ajouté ce point sur la ligne d'installation en tant que compilateur de choix. Mais alors je reçois l'erreur "RuntimeError: chmod error".

Comment dans le monde puis-je contourner cela? J'ai essayé d'utiliser pip, qui donne le même résultat. J'ai trouvé un binaire pré-construit PyCrypto 2.3 et je l'ai installé, mais il est introuvable sur le système (ne fonctionne pas).

Des idées?

129
Coldblackice

Si vous n'avez pas déjà installé d'environnement de développement C/C++ compatible avec les binaires Visual Studio distribués par Python.org, vous devez vous limiter à l'installation de packages Python purs ou de packages pour lesquels un fichier binaire Windows est disponible.

Heureusement, des binaires PyCrypto sont disponibles pour Windows: http://www.voidspace.org.uk/python/modules.shtml#pycrypto

METTRE À JOUR:
Comme @Udi le suggère dans le commentaire ci-dessous, la commande suivante installe également pycrypto et peut être utilisée dans virtualenv:

easy_install http://www.voidspace.org.uk/python/pycrypto-2.6.1/pycrypto-2.6.1.win32-py2.7.exe

Avis de choisir le lien correspondant à votre configuration dans cette liste

Si vous recherchez des versions pour Python 3.5, consultez PyCrypto sur python 3.5

177
Michael Dillon

Récemment, Microsoft a publié un compilateur Microsoft Visual C++ autonome et dédié pour Python 2.7 . Si vous utilisez Python 2.7, installez simplement ce compilateur et Setuptools 6.0 ou une version ultérieure, et la plupart des packages avec les extensions C se compileront facilement.

32
Jason R. Coombs

Après des années et des années, python a finalement accepté une distribution binaire appelée wheel qui permet d'installer même des extensions binaires sous Windows sans avoir de compilateur avec le simple pip install packagename. Il y a une liste des paquets populaires avec leur statut. Pycrypto n'est pas encore arrivé, mais lxml, PySide et Scrapy par exemple. 

Edité novembre 2015: pip uninstall pycrypto & pip install pycryptodome. C'est une fourche pycrypto avec de nouvelles fonctionnalités et qui supporte la roue. Il remplace pycrypto, ainsi le code existant continuera à fonctionner (voir https://pycryptodome.readthedocs.org/en/latest/src/examples.html )

20
Smit Johnth

En général

vcvarsall.bat fait partie du compilateur Visual C++, vous en aurez besoin pour installer ce que vous essayez d'installer. N'essayez même pas de traiter avec MingGW si votre Python a été compilé avec la chaîne d'outils Visual Studio et inversement. Même la version de la chaîne d'outils Microsoft est importante. Python compilé avec VS 2008 ne fonctionnera pas avec les extensions compilées avec VS 2010!

Vous devez compiler PyCrypto avec le même compilateur que celui avec lequel la version de Python a été compilée. Google pour "Impossible de trouver vcvarsall.bat" parce que c'est la racine de votre problème, il s'agit d'un problème très courant lors de la compilation d'extensions Python sous Windows.

Il y a beaucoup d'informations et beaucoup à lire pour obtenir ce droit sur n'importe quel système que vous êtes avec ce lien.

Faites attention lorsque vous utilisez Visual Studio 2010 ou n'utilisez pas Visual Studio 2008

Autant que je sache, ce qui suit est toujours vrai. Cela a été publié dans le lien ci-dessus en juin 2010, faisant référence à la tentative de création d'extensions avec VS 2010 Express par rapport aux programmes d'installation Python disponibles sur python.org.

Soyez prudent si vous faites cela. Python 2.6 et 2.7 de python.org sont construit avec les compilateurs Visual Studio 2008. Vous devrez établir un lien avec le même tube cathodique (msvcr90.dll) que Python.

Les liens de Visual Studio 2010 Express avec la mauvaise version de CRT sont les suivants: msvcr100.dll.

Si vous procédez ainsi, vous devez également reconstruire Python avec Visual Studio 2010 Express. Vous ne pouvez pas utiliser le programme d'installation binaire Python standard pour Les fenêtres. Vous ne pouvez pas non plus utiliser d’extensions C/C++ construites avec un fichier .__ différent. compilateur que Visual Studio 2010 (Express).

_ {Opinion: c’est une des raisons pour lesquelles j’ai abandonné Windows pour tout travail de développement sérieux sous OSX!} _

18
user177800

Pour VS2010:

SET VS90COMNTOOLS=%VS100COMNTOOLS%

Pour VS2012:

SET VS90COMNTOOLS=%VS110COMNTOOLS%

puis appelez:

pip install pyCrypto 
17
Chandan

PyCryptodome est une version presque compatible de PyCrypto avec les roues Windows disponibles sur pypi .

Vous pouvez l'installer avec un simple:

pip install pycryptodome

Le site Web inclut des instructions pour le construire à partir de sources avec les compilateurs Microsoft.

13

J'ai réussi à compiler pycrypto en utilisant MinGW32 et MSYS. Cela suppose que vous avez pip ou easy_install installé.

Voici comment je l'ai fait:

1) Installez MinGW32 . Pour les besoins de cette explication, supposons qu’il soit installé dans C:\MinGW. Lors de l'utilisation du programme d'installation, que je recommande, sélectionnez le compilateur C++. MSYS doit installer avec MinGW

2) Ajoutez c:\mingw\bin,c:\mingw\mingw32\bin,C:\MinGW\msys\1.0, c:\mingw\msys\1.0\bin and c:\mingw\msys\1.0\sbin à votre %PATH%. Si vous n'êtes pas familier, cet article est très utile.

3) Dans la barre de recherche, exécutez msys et le terminal MSYS s'ouvrira. Pour ceux qui connaissent Cygwin, cela fonctionne de la même manière.

4) À partir du terminal MSYS, pip install pycrypto devrait s'exécuter sans erreur après cela. 

6
darnold0714

Pour Windows 7:

Pour installer Pycrypto sous Windows,

Essayez ceci dans l'invite de commande,

Définir le chemin = C:\Python27\Scripts (c'est-à-dire le chemin où se trouve easy_install)

Puis exécutez ce qui suit,

easy_install pycrypto

Pour Ubuntu:

Essaye ça,

Téléchargez Pycrypto à partir de " https://pypi.python.org/pypi/pycrypto "

Puis changez votre chemin actuel en chemin téléchargé en utilisant votre terminal et l'utilisateur devrait être root:

Exemple: root @ xyz-virtual-machine: ~/pycrypto-2.6.1 #

Puis exécutez ce qui suit en utilisant le terminal:

installation de python.py

Cela a fonctionné pour moi. L'espoir fonctionne pour tous ..

5
JayaPrakash

Pour ceux qui recherchent python 3.4, j’ai trouvé un git repo avec un programme d’installation qui fonctionne. Voici les liens directs pour x64 et x32

5
user25064

Il est possible de créer PyCrypto à l'aide des kits d'outil Windows 7 SDK. Il existe deux versions du SDK Windows 7. La version d'origine (pour .Net 3.5) inclut les compilateurs en ligne de commande de VS 2008. Les compilateurs 32 et 64 bits peuvent être installés.

La première étape consiste à compiler mpir afin de fournir une arithmétique rapide. J'ai documenté le processus que j'utilise dans la bibliothèque gmpy . Des instructions détaillées sur la construction de mpir à l’aide du compilateur SDK sont disponibles à l’adresse sdk_build

Les étapes clés pour utiliser les compilateurs SDK à partir d'une invite DOS sont les suivantes:

1) Exécutez vcvars32.bat ou vcvars64.bat selon vos besoins.

2) À l'invite, exécutez "set MSSdk = 1"

3) À l'invite, exécutez "set DISTUTILS_USE_SDK = 1"

Cela devrait permettre à "python setup.py install" de réussir en supposant qu’il n’ya pas d’autres problèmes avec le code C. Mais je me souviens sûrement que je devais éditer quelques fichiers PyCrypto pour activer mpir et trouver les bibliothèques de mpir, mais je n’ai pas encore installé mon système Windows. Il me faudra quelques jours avant d'avoir le temps de recréer les étapes. Si vous ne signalez pas le succès d'ici là, je publierai les étapes PyCrypto. Les étapes supposent que vous avez pu compiler mpir.

J'espère que ça aide. 

4
casevh

Donc, j'installe MinGW et je l'insère sur la ligne d'installation en tant que compilateur de choix. Mais alors j'obtiens l'erreur "RuntimeError: erreur chmod".

Cette erreur "RuntimeError: chmod error" se produit car le script d'installation n'a pas trouvé la commande chmod.

Comment dans le monde puis-je contourner cela?

Solution

Vous devez uniquement ajouter les fichiers binaires MSYS au fichier PATH et réexécuter le script d'installation.

(NB: Notez que MinGW est livré avec MSYS alors)

Exemple

Par exemple, si nous sommes dans le dossier C:\<..>\pycrypto-2.6.1\dist\pycrypto-2.6.1>

C:\.....>set PATH=C:\MinGW\msys\1.0\bin;%PATH%
C:\.....>python setup.py install

Facultatif: vous devrez peut-être nettoyer avant de réexécuter le script:

`C:\<..>\pycrypto-2.6.1\dist\pycrypto-2.6.1> python setup.py clean`
3
Bludzee
  1. Accédez à "Compilateur Microsoft Visual C++ pour Python 2.7" et poursuivez en fonction de "Configuration système" (c'est ce que j'ai fait pour regrouper les étapes ci-dessous).

  2. Install setuptools (setuptools 6.0 ou version ultérieure est requis pour que Python détecte automatiquement ce compilateur) soit par:pip install setuptoolsou télécharger "Setuptools bootstrapping installer" source from , sauvegardez ce fichier quelque part sur votre système de fichiers sous le nom "ez_python.py" et installez-le avec: python ez_python.py

  3. Install wheel (wheel est recommandé pour la production de paquetages binaires pré-construits). Vous pouvez l'installer avec: pip install wheel

  4. Ouvrez l'invite de commandes Windows, cmd.exe (avec "Exécuter en tant qu'administrateur") sur install "Compilateur Microsoft Visual C++ pour Python 2.7" pour tous les utilisateurs. Vous pouvez utiliser la commande suivante pour le faire: msiexec/i C:\users\jozko\download\VCForPython27.msi ALLUSERS=1 utilisez simplement votre propre chemin d'accès au fichier: msiexec /i <path to MSI> ALLUSERS=1

  5. Vous devriez maintenant pouvoir installer pycrypto avec: pip install pycrypto

3
damian1baran

Essayez simplement d'utiliser:

pip install pycryptodome

ou:

pip install pycryptodomex

Source: https://pypi.python.org/pypi/pycryptodome

3
Kade

Ce n'est probablement pas la solution optimale, mais vous pouvez télécharger et installer le package gratuit Visual C++ Express à partir de MS. Cela vous donnera le compilateur C++ dont vous avez besoin pour compiler le code PyCrypto.

2
sizzzzlerz

Si vous êtes sur Windows et que vous avez du mal à installer Pycrypcto, utilisez simplement: py installpip pycryptodome. Cela fonctionne comme un miracle et vous facilitera la vie beaucoup plus que d’essayer de faire beaucoup de configurations et d’améliorations.

2
john

Ma réponse pourrait ne pas être liée à la mention du problème ici, mais j'avais le même problème avec Python 3.4 où Crypto.Cipher n'était pas une importation valide. J'ai donc essayé d'installer PyCrypto et j'ai eu des problèmes.

Après quelques recherches, j'ai trouvé avec 3.4 que vous devriez utiliser pycryptodome .

J'ai installé pycryptodome en utilisant pycharm et j'étais bon.

depuis Crypto.Cipher import AES

1
Virendra Patel

J'ai donc installé MinGW et ajouté ce point sur la ligne d'installation en tant que compilateur de choix. Mais alors j'obtiens l'erreur "RuntimeError: erreur chmod".

Vous devez installer le paquet msys sous MinGW 

enter image description here

et ajoutez les entrées suivantes dans votre variable env. PATH.

  • C:\MinGW\bin
  • C:\MinGW\msys\1.0\bin [C'est ici que vous trouverez l'exécutable chmod]

Ensuite, exécutez votre commande à partir de l'invite de commande Windows normale.

1
Aniket Thakur

Pour des raisons juridiques étranges, les fichiers binaires ne sont pas publiés normalement. L'espace vide est normalement la meilleure deuxième source. Mais depuis un certain temps, le responsable de l'espace vide n'a pas mis à jour. Utilisez le fichier ZIP de [ https://www.dropbox.com/s/n6rckn0k6u4nqke/pycrypto-2.6.1.zip?dl=0]

0
Zimmermann

Étape 1: Installez Visual C++ 2010 Express à partir de here

(N'installez pas Microsoft Visual Studio 2010 Service Pack 1)

Étape 2: supprimez tous les packages redistribuables Microsoft Visual C++ 2010 dans Panneau de configuration\Programmes et fonctionnalités. Si vous ne le faites pas, l'installation échouera avec une erreur obscure "Erreur fatale lors de l'installation".

Étape 3: Installez la version hors connexion du Kit de développement logiciel (SDK) Windows pour Visual Studio 2010 (v7.1) à partir de ici . Ceci est requis pour les extensions 64 bits. Windows a intégré le montage pour les ISO comme Pismo. 

Étape 4: Vous devez installer le fichier ISO avec Pismo File Mount Audit Package. Téléchargez Pismo depuis ici

Étape 5: Faites un clic droit sur le fichier ISO téléchargé et choisissez le montage avec Pismo. Ensuite, installez Setup\SDKSetup.exe à la place de setup.exe.

Étape 6a: Créez un fichier vcvars64.bat dans C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\AMD64 en changeant le répertoire en C:\Program Files (x86) la commande Invite . Tapez la commande sur la commande Invite: cd C:\Program Files (x86)\Microsoft Visual Studio version\VC\r

Étape 6b: Pour configurer cette fenêtre d'invite de commande pour les générations de ligne de commande 64 bits qui ciblent les plates-formes x86, à l'invite de commande, entrez: vcvarsall x86 Cliquez sur ici pour plus d'options.

Étape 7: à l’invite de commande, installez PyCrypto en tapant: C:\Python3X>pip install -U your_wh_file

0

J'ai eu Pycharm pour le python.

  1. Allez à pycharm -> file -> setting -> project interpreter

  2. Cliquer sur +

  3. Recherchez "pycrypto" et installez le paquet

Remarque: Si "Microsoft Visual C++ Compiler pour Python 2.7" n'est pas installé, il vous sera demandé de l'installer. Une fois l'installation terminée, essayez les étapes ci-dessus, tout devrait bien fonctionner.

0
RAKESH