Question erreur: Impossible de trouver vcvarsall.bat


J'ai essayé d'installer le paquet Python dulwich:

pip install dulwich

Mais je reçois un message d'erreur cryptique:

error: Unable to find vcvarsall.bat

La même chose se produit si j'essaye d'installer le paquet manuellement:

> python setup.py install
running build_ext
building 'dulwich._objects' extension
error: Unable to find vcvarsall.bat

806
2018-05-12 10:24


origine


Réponses:


Mettre à jour: Les commentaires soulignent que les instructions ici peuvent être dangereuses. Envisagez d'utiliser l'édition Visual C ++ 2008 Express ou l'édition spéciale Compilateur Microsoft Visual C ++ pour Python (détails) et NE PAS en utilisant la réponse originale ci-dessous. Message d'erreur d'origine signifie que la version requise de Visual C ++ n'est pas installée.


677
2018-05-11 20:39



J'ai trouvé la solution. J'ai eu exactement le même problème, et l'erreur, en installant 'amara'. J'avais mingw32 installé, mais distutils avait besoin d'être configuré.

  1. J'ai Python 2.6 qui était déjà installé.
  2. J'ai installé mingw32 à C:\programs\mingw\
  3. Ajoutez le répertoire bin de mingw32 à votre variable d'environnement: append c:\programs\MinGW\bin; au CHEMIN
  4. Modifier (créer si non existant) distutils.cfg fichier situé à C:\Python26\Lib\distutils\distutils.cfg être:

    [build]
    compiler=mingw32
    
  5. Maintenant courez easy_install.exe amara.

Assurez-vous que l'environnement est défini en ouvrant une nouvelle cmd.exe.


224
2018-05-15 03:37



Vous pouvez installer la version compilée à partir de http://www.lfd.uci.edu/~gohlke/pythonlibs/


221
2018-05-12 19:55



Si vous voulez compiler avec Visual Studio C ++ au lieu de mingw ...

  1. Courir python.exe pour afficher la version de VC ++ avec laquelle il a été compilé (exemple montré ci-dessous).

    C'est important utiliser la version correspondante du compilateur Visual C ++ avec lequel Python a été compilé depuis distilutilsde get_build_version empêche les mélanges de versions (par l'avertissement de Piotr).

    • Jaune (en haut) est Python 2.7, compilé avec MSC v.1500 (Visual Studio C ++ 2008)
    • Rouge (en bas) est Python 3.4.1, compilé avec MSC v.1600 (Visual Studio C ++ 2010)

    Example from the command line showing Python 2.7 compiled with MSC v.1500 and Python 3.4.1 compiled with MSC v.1600

  2. Utilisez le tableau ci-dessous[1] pour faire correspondre la version interne de VC ++ avec la version Visual Studio correspondante:

    MSC v.1000 -> Visual C++ 4.x        
    MSC v.1100 -> Visual C++ 5          
    MSC v.1200 -> Visual C++ 6          
    MSC v.1300 -> Visual C++ .NET       
    MSC v.1310 -> Visual C++ .NET 2003  
    MSC v.1400 -> Visual C++ 2005  (8.0)
    MSC v.1500 -> Visual C++ 2008  (9.0)
    MSC v.1600 -> Visual C++ 2010 (10.0)
    MSC v.1700 -> Visual C++ 2012 (11.0)
    MSC v.1800 -> Visual C++ 2013 (12.0)
    MSC v.1900 -> Visual C++ 2015 (14.0)
    MSC v.1910 -> Visual C++ 2017 (15.0)      
    
  3. Téléchargez et installez la version correspondante de Visual Studio C ++ à l'étape précédente.
    Des notes supplémentaires pour des versions spécifiques de VC ++ sont listées ci-dessous.

    Notes pour Visual Studio C ++ 2008

    Pour seulement les compilateurs 32 bits, télécharger Visual Studio C ++ 2008 Express Edition.

    Pour les compilateurs 64 bits[2][3], Télécharger Windows SDK pour Windows 7 et .NET Framework 3.5 SP1.

    • Décochez tout sauf Developer Tools >> Visual C++ Compilers pour gagner du temps et de l'espace disque en installant des outils SDK dont vous n'avez pas besoin.

    Notes pour Visual Studio C ++ 2010

    Selon Microsoft, si vous avez installé Visual Studio 2010 SP1, il peut avoir supprimé les compilateurs et les bibliothèques pour VC ++.
    Si tel est le cas, téléchargez Mise à jour du compilateur Visual C ++ 2010 SP1.

    Notes pour Visual Studio C ++ 2015

    Si vous n'avez pas besoin de l'IDE de Visual Studio, téléchargez Outils de création Visual Studio C ++ 2015.

    Notes pour Visual Studio C ++ 2017

    Si vous n'avez pas besoin de l'IDE de Visual Studio, téléchargez Construire des outils pour Visual Studio 2017.

    Suggestion: Si vous avez une installation Python 32 et 64 bits, vous pouvez également utiliser virtualenv pour créer des environnements Python séparés afin que vous puissiez utiliser l'un ou l'autre à la fois sans vous tromper avec votre chemin pour choisir la version Python à utiliser.

Selon @srodriguex, vous pouvez ignorer manuellement le chargement du fichier de traitement par lots (étapes 4 à 6) en copiant à la place quelques fichiers de traitement par lots dans l'emplacement où Python recherche en suivant cette réponse. Si cela ne fonctionne pas, voici les étapes suivantes qui ont fonctionné à l'origine pour moi.

  1. Ouvrez un cmd.exe

  2. Avant vous essayez d'installer quelque chose qui nécessite des extensions C, exécutez le fichier batch suivant pour charger l'environnement du compilateur VC ++ dans la session (c'est-à-dire les variables d'environnement, le chemin vers le compilateur, etc.).

    Exécuter: 

    • Compilateurs 32 bits:

      Remarque: Les installations Windows 32 bits auront uniquement C:\Program Files\ comme prévu

      "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"

    • Compilateurs 64 bits:

      "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars64.bat"

      Remarque: Oui, les compilateurs 64 bits natifs sont en Program Files (x86). Ne me demande pas pourquoi.
        De plus, si vous vous demandez quelle est la différence entre vcvars64.bat et vcvarsx86_amd64.bat ou plus important encore, la différence entre amd64 et x86_amd64, les premiers concernent les outils de compilation natifs 64 bits et les derniers sont les compilateurs croisés 64 bits pouvant être exécutés sur une installation Windows 32 bits.

    Mettre à jour:
    Si pour une raison quelconque, vous obtenez error: ... was unexpected at this time. où le ... est une série de caractères, alors vous devez vérifier que votre variable de chemin n'a aucun caractère étranger comme des citations supplémentaires ou des caractères parasites. Le fichier de commandes ne sera pas capable de mettre à jour votre chemin de session s'il ne peut pas le comprendre en premier lieu.

  3. Si cela s'est bien passé, vous devriez recevoir l'un des messages suivants en fonction de la version de VC ++ et de la commande que vous avez exécutée:

    Pour les outils du compilateur 32 bits:
    Setting environment for using Microsoft Visual Studio 20xx x86 tools. 

    Pour les outils du compilateur 64 bits:
    Setting environment for using Microsoft Visual Studio 20xx x64 tools.

  4. À présent, exécutez la configuration via python setup.py install ou pip install pkg-name

  5. Espérer et croiser les doigts que les planètes sont alignées correctement pour que VC ++ coopère.


146
2017-08-04 16:48



Que se passe-t-il? Les modules Python peuvent être partie écrite en C ou C ++ (typiquement pour la vitesse). Si vous essayez d'installer un tel paquet avec Pip (ou setup.py), il doit compiler ce C / C ++ à partir de la source. Dans la boîte, Pip supposera effrontément que le compilateur Microsoft Visual C ++ est installé. Si vous ne l'avez pas, vous verrez ce message d'erreur cryptique "Erreur: Impossible de trouver vcvarsall.bat".

La solution prescrite consiste à installer un compilateur C / C ++, soit Microsoft Visual C ++, soit MinGW (un projet open-source). Cependant, l'installation et la configuration sont soit extrêmement difficiles. (Édition 2014: Microsoft a publié un spécial Compilateur C ++ pour Python 2.7)

La solution la plus simple consiste à utiliser les installateurs Windows de Christoph Gohlke (.msi) pour les paquets Python populaires. Il construit des programmes d'installation pour Python 2.x et 3.x, 32 bits et 64 bits. Vous pouvez les télécharger depuis http://www.lfd.uci.edu/~gohlke/pythonlibs/


Si vous aussi pensez que "Erreur: Impossible de trouver vcvarsall.bat" est un message ridiculement énigmatique et inutile, alors s'il vous plaît commenter le bug à http://bugs.python.org/issue2943 pour le remplacer par un message plus utile et plus convivial.

A titre de comparaison, Ruby est livré avec un gestionnaire de paquets Gem et propose un compilateur C / C ++ quasi-officiel, DevKit. Si vous essayez d'installer un paquet sans lui, vous voyez ce message utile utile:

Veuillez mettre à jour votre PATH pour inclure des outils de construction ou télécharger le DevKit de http://rubyinstaller.org/downloads et suivez les instructions à http://github.com/oneclick/rubyinstaller/wiki/Development-Kit

Vous pouvez lire une diatribe plus longue sur l'emballage de Python à https://stackoverflow.com/a/13445719/284795


70
2017-08-02 13:48



Vous devrez installer un compilateur Microsoft compatible avec le compilateur utilisé pour compiler Python. Cela signifie que vous avez besoin de Visual C ++ 2008 (ou plus récent, avec un peu de peaufinage).

Microsoft fournit maintenant un compilateur et des en-têtes fournis juste pour pouvoir compiler des extensions Python, à l'URL mémorable:

Compilateur Microsoft Visual C ++ pour Python 2.7

http://aka.ms/vcpython27

C'est un paquet relativement petit; 85 Mo à télécharger, installable sans droits d'administrateur, pas besoin de redémarrer. Le nom est un peu trompeur, le compilateur fonctionnera pour n'importe quelle version de Python initialement compilée avec Visual C ++ 2008, pas seulement Python 2.7.

Si vous démarrez une invite interactive Python ou imprimez sys.version, Cherchez le MSC chaîne de version; Si c'est MSC v.1500 vous pouvez utiliser cet outil.

Du annonce originale à la liste distutils:

Microsoft a publié un package de compilateur pour Python 2.7 afin de faciliter la création et la distribution de modules d'extension C sous Windows. Le compilateur Microsoft Visual C ++ pour Python 2.7 (a.k.a. VC9) est disponible auprès de: http://aka.ms/vcpython27 

Ce paquet contient tous les outils et en-têtes requis pour construire des modules d'extension C pour Python 2.7 32 bits et 64 bits (notez que certains modules d'extension nécessitent des dépendances tierces telles que OpenSSL ou libxml2 qui ne sont pas incluses). Les autres versions de Python construites avec Visual C ++ 2008 sont également supportées, donc "Python 2.7" est juste de la publicité - ça marchera bien avec 2.6 et 3.2.

Notez que vous devez avoir setuptools 6.0 ou plus récent installé (répertorié dans la configuration système requise sur la page de téléchargement). Le projet que vous installez doit utiliser setuptools.setup(), ne pas distutils ou la détection automatique ne fonctionnera pas.

Microsoft a déclaré qu'il souhaitait que l'URL reste stable, afin que les scripts automatisés puissent s'y référer facilement.


63
2017-09-30 18:23



J'ai juste eu le même problème, donc je vais raconter mon histoire ici en espérant que cela aide quelqu'un d'autre avec les mêmes problèmes et les sauver les quelques heures que je viens de passer:

J'ai mingw (g ++ (GCC) 4.6.1) et python 2.7.3 dans une boîte de Windows 7 et j'essaye d'installer PyCrypto.

Tout a commencé avec cette erreur lors de l'installation de setup.py:

error: Unable to find vcvarsall.bat

Facilement résolu après googling l'erreur en spécifiant MINGW comme le compilateur de choix:

setup.py install build --compiler=mingw32

Le problème est que j'ai alors une erreur différente:

configure: error: cannot run C compiled programs.

Il s'avère que mon anti-virus bloquait l'exécution d'un .exe fraîchement compilé. Je viens de désactiver le "bouclier résident" anti-virus et est allé à l'erreur suivante:

cc1.exe: error: unrecognized command line option '-mno-cygwin' 
error: command 'gcc' failed with exit status 1

Cela l'a résolu: "soit installez une version légèrement plus ancienne de MinGW, soit éditez distutils \ cygwinccompiler.py dans votre répertoire Python pour supprimer toutes les instances de -mno-cygwin." (de ici)

Maintenant, je peux enfin commencer à travailler.


55
2018-05-08 15:31



On dirait qu'il cherche des compilateurs VC, donc vous pouvez essayer de mentionner le type de compilateur avec -c mingw32, puisque vous avez msys

python setup.py install -c mingw32

23
2018-05-12 10:44