Frage Fehler: Kann vcvarsall.bat nicht finden


Ich habe versucht, das Python-Paket zu installieren Dulwich:

pip install dulwich

Aber ich bekomme eine kryptische Fehlermeldung:

error: Unable to find vcvarsall.bat

Das gleiche passiert, wenn ich versuche, das Paket manuell zu installieren:

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

806
2018-05-12 10:24


Ursprung


Antworten:


Aktualisieren: Kommentare weisen darauf hin, dass die Anweisungen hier gefährlich sein können. Erwägen Sie, die Visual C ++ 2008 Express Edition oder die speziell dafür entwickelte Version zu verwenden Microsoft Visual C ++ - Compiler für Python (Einzelheiten) und NICHT Verwenden Sie die ursprüngliche Antwort unten. Ursprüngliche Fehlermeldung bedeutet, dass die erforderliche Version von Visual C ++ nicht installiert ist.


677
2018-05-11 20:39



Ich habe die Lösung gefunden. Ich hatte genau das gleiche Problem, und Fehler, Installation 'Amara'. Ich hatte mingw32 installiert, aber distutils musste konfiguriert werden.

  1. Ich habe Python 2.6, das bereits installiert war.
  2. Ich habe mingw32 installiert C:\programs\mingw\
  3. Fügen Sie das bin-Verzeichnis von mingw32 zu Ihrer Umgebungsvariablen hinzu: append c:\programs\MinGW\bin; zum PFAD
  4. Bearbeiten (Erstellen, falls nicht vorhanden) distutils.cfg Datei befindet sich bei C:\Python26\Lib\distutils\distutils.cfg sein:

    [build]
    compiler=mingw32
    
  5. Jetzt lauf easy_install.exe amara.

Stellen Sie sicher, dass die Umgebung eingerichtet ist, indem Sie eine neue öffnen cmd.exe.


224
2018-05-15 03:37



Sie können kompilierte Version von installieren http://www.lfd.uci.edu/~gohlke/pythonlibs/


221
2018-05-12 19:55



Wenn Sie mit Visual Studio C ++ statt mingw kompilieren möchten ...

  1. Lauf python.exe um anzuzeigen, mit welcher Version von VC ++ es kompiliert wurde (Beispiel unten).

    Es ist wichtig Verwenden der entsprechenden Version des Visual C ++ - Compilers, mit dem Python seither kompiliert wurde Destillatist es get_build_version verhindert Mischversionen (nach Piotrs Warnung).

    • Gelb (oben) ist Python 2.7, kompiliert mit MSC v.1500 (Visual Studio C ++ 2008)
    • Rot (unten) ist Python 3.4.1, kompiliert mit 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. Verwenden Sie die folgende Tabelle[1] um die interne VC ++ - Version mit der entsprechenden Visual Studio-Version zu vergleichen:

    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. Downloaden Sie und installieren Sie die entsprechende Version von Visual Studio C ++ aus dem vorherigen Schritt.
    Zusätzliche Hinweise für bestimmte Versionen von VC ++ sind unten aufgeführt.

    Hinweise für Visual Studio C ++ 2008

    Zum nur die 32-Bit-Compiler, herunterladen Visual Studio C ++ 2008 Express Edition.

    Für die 64-Bit-Compiler[2][3], herunterladen Windows SDK für Windows 7 und .NET Framework 3.5 SP1.

    • Deaktivieren Sie alles außer Developer Tools >> Visual C++ Compilers um Zeit und Speicherplatz durch die Installation von SDK-Tools zu sparen, die Sie sonst nicht benötigen.

    Hinweise für Visual Studio C ++ 2010

    Wenn Sie Visual Studio 2010 SP1 installierten, hat es laut Microsoft möglicherweise die Compiler und die Bibliotheken für VC ++ entfernt.
    Wenn das der Fall ist, laden Sie herunter Visual C ++ 2010 SP1-Compileraktualisierung.

    Hinweise für Visual Studio C ++ 2015

    Wenn Sie die Visual Studio-IDE nicht benötigen, laden Sie sie herunter Visual Studio C ++ 2015 Build-Tools.

    Hinweise für Visual Studio C ++ 2017

    Wenn Sie die Visual Studio-IDE nicht benötigen, laden Sie sie herunter Erstellen Sie Tools für Visual Studio 2017.

    Vorschlag: Wenn Sie sowohl eine 32- als auch eine 64-Bit-Python-Installation haben, möchten Sie vielleicht auch verwenden virtualenv Erstellen Sie separate Python-Umgebungen, so dass Sie die eine oder die andere auf einmal verwenden können, ohne sich mit Ihrem Pfad herumzuärgern, um die zu verwendende Python-Version auszuwählen.

Gemäß @ srodriguexMöglicherweise können Sie das manuelle Laden der Stapeldatei überspringen (Schritte 4-6), indem Sie stattdessen einige Stapeldateien an die Stelle kopieren, an der Python sucht diese Antwort. Wenn das nicht funktioniert, hier sind die folgenden Schritte, die ursprünglich für mich gearbeitet haben.

  1. Öffnen Sie ein cmd.exe

  2. Vor Wenn Sie versuchen, etwas zu installieren, für das C-Erweiterungen erforderlich sind, führen Sie die folgende Stapeldatei aus, um die Umgebung des VC ++ - Compilers in die Sitzung zu laden (z. B. Umgebungsvariablen, Pfad zum Compiler usw.).

    Ausführen: 

    • 32-Bit-Compiler:

      Hinweis: 32-Bit-Windows-Installationen werden nur haben C:\Program Files\ wie erwartet

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

    • 64-Bit-Compiler:

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

      Hinweis: Ja, die nativen 64-Bit-Compiler sind in Program Files (x86). Frag mich nicht warum.
        Darüber hinaus, wenn Sie sich fragen, was der Unterschied zwischen vcvars64.bat und vcvarsx86_amd64.bat oder wichtiger der Unterschied zwischen amd64 und x86_amd64die ersten sind für die nativen 64-Bit-Compiler-Tools und die letzteren sind die 64-Bit-Cross-Compiler, die auf einer 32-Bit-Windows-Installation ausgeführt werden können.

    Aktualisieren:
    Wenn Sie aus irgendeinem Grund bekommen error: ... was unexpected at this time. bei dem die ... ist eine Reihe von Zeichen, dann müssen Sie überprüfen, dass Ihre Pfadvariable keine überflüssigen Zeichen wie zusätzliche Zitate oder streunende Zeichen enthält. Die Batch-Datei kann Ihren Sitzungspfad nicht aktualisieren, wenn er von vornherein keinen Sinn ergibt.

  3. Wenn das gut ging, sollten Sie abhängig von der Version von VC ++ und dem von Ihnen ausgeführten Befehl eine der folgenden Meldungen erhalten:

    Für die 32-Bit-Compiler-Tools:
    Setting environment for using Microsoft Visual Studio 20xx x86 tools. 

    Für die 64-Bit-Compiler-Tools:
    Setting environment for using Microsoft Visual Studio 20xx x64 tools.

  4. JetztFühren Sie das Setup über python setup.py install oder pip install pkg-name

  5. Hoffen Sie, und drücken Sie Ihre Finger, dass die Planeten richtig ausgerichtet sind, damit VC ++ zusammenarbeitet.


146
2017-08-04 16:48



Was ist los? Python-Module können sein Teil in C oder C ++ geschrieben (typisch für die Geschwindigkeit). Wenn Sie versuchen, ein solches Paket mit Pip (oder setup.py), muss das C / C ++ aus der Quelle kompiliert werden. Out the box wird Pip unverhofft davon ausgehen, dass der Compiler Microsoft Visual C ++ installiert ist. Wenn Sie es nicht haben, sehen Sie diese kryptische Fehlermeldung "Fehler: Kann vcvarsall.bat nicht finden".

Die vorgeschriebene Lösung ist die Installation eines C / C ++ - Compilers, entweder Microsoft Visual C ++ oder MinGW (ein Open-Source-Projekt). Das Installieren und Konfigurieren ist jedoch prohibitiv schwierig. (Edit 2014: Microsoft hat eine spezielle veröffentlicht C ++ - Compiler für Python 2.7)

Die einfachste Lösung ist, Christoph Gohlkes Windows-Installer (.msi) für gängige Python-Pakete zu verwenden. Er erstellt Installer für Python 2.x und 3.x, 32 Bit und 64 Bit. Sie können sie von herunterladen http://www.lfd.uci.edu/~gohlke/pythonlibs/


Wenn Sie auch denken, dass "Error: Unable to find vcvarsall.bat" eine lächerlich kryptische und wenig hilfreiche Nachricht ist, dann kommentieren Sie bitte den Fehler unter http://bugs.python.org/issue2943 um es durch eine hilfreichere und benutzerfreundlichere Nachricht zu ersetzen.

Zum Vergleich wird Ruby mit einem Paketmanager Gem ausgeliefert und bietet einen quasi-offiziellen C / C ++ - Compiler, DevKit. Wenn Sie versuchen, ein Paket ohne es zu installieren, sehen Sie diese hilfreiche freundliche nützliche Nachricht:

Bitte aktualisieren Sie Ihren PATH um Build-Tools zu integrieren oder laden Sie das DevKit herunter http://rubyinstaller.org/downloads und folgen Sie den Anweisungen unter http://github.com/oneclick/rubyinstaller/wiki/Development-Kit

Sie können länger über Python-Pakete lesen https://stackoverflow.com/a/13445719/284795


70
2017-08-02 13:48



Sie müssen einen Microsoft-Compiler installieren, der mit dem Compiler kompatibel ist, der zum Erstellen von Python verwendet wird. Das bedeutet, dass Sie Visual C ++ 2008 (oder neuer mit etwas Feinschliff).

Microsoft liefert jetzt einen gebündelten Compiler und Header gerade in der Lage sein, Python-Erweiterungen unter der einprägsamen URL zu kompilieren:

Microsoft Visual C ++ - Compiler für Python 2.7

http://aka.ms/vcpython27

Dies ist ein relativ kleines Paket; 85 MB zum Herunterladen, installierbar ohne Administratorrechte, kein Neustart erforderlich. Der Name ist ein wenig irreführend, der Compiler funktioniert für jede Python-Version, die ursprünglich mit Visual C ++ 2008 kompiliert wurde, nicht nur Python 2.7.

Wenn Sie eine interaktive Python-Eingabeaufforderung starten oder drucken sys.version, Suche nach MSC Versionsstring; wenn es ist MSC v.1500 Sie können dieses Werkzeug verwenden.

Von dem ursprüngliche Ankündigung zur Distutils-Liste:

Microsoft hat ein Compiler-Paket für Python 2.7 veröffentlicht, um es den Benutzern zu erleichtern, ihre C-Erweiterungsmodule unter Windows zu erstellen und zu verteilen. Der Microsoft Visual C ++ - Compiler für Python 2.7 (alias VC9) ist verfügbar von: http://aka.ms/vcpython27 

Dieses Paket enthält alle Tools und Header, die zum Erstellen von C-Erweiterungsmodulen für Python 2.7 32-Bit und 64-Bit erforderlich sind (beachten Sie, dass einige Erweiterungsmodule Abhängigkeiten von Drittanbietern wie OpenSSL oder libxml2 benötigen, die nicht enthalten sind). Andere Versionen von Python, die mit Visual C ++ 2008 erstellt wurden, werden ebenfalls unterstützt, so dass "Python 2.7" nur Werbung ist - es wird gut mit 2.6 und 3.2 funktionieren.

Beachten Sie, dass Sie haben müssen setuptools 6.0 oder neuer installiert (in den Systemanforderungen auf der Download-Seite aufgeführt). Das Projekt, das Sie installieren, muss verwendet werden setuptools.setup()nicht distutils oder die automatische Erkennung funktioniert nicht.

Microsoft hat erklärt, dass sie die URL stabil halten wollen, damit automatisierte Skripte sie leicht referenzieren können.


63
2017-09-30 18:23



Ich hatte gerade das gleiche Problem, also werde ich hier meine Geschichte erzählen, in der Hoffnung, dass es jemand anderem mit den gleichen Problemen hilft und ihnen die paar Stunden erspare, die ich gerade verbracht habe:

Ich habe mingw (g ++ (GCC) 4.6.1) und Python 2.7.3 in einer Windows 7-Box und ich versuche, PyCrypto zu installieren.

Alles begann mit diesem Fehler beim Ausführen von setup.py install:

error: Unable to find vcvarsall.bat

Nach dem googlen des Fehlers einfach durch Angabe von mingw als Compiler der Wahl gelöst:

setup.py install build --compiler=mingw32

Das Problem ist, dass ich dann einen anderen Fehler bekommen habe:

configure: error: cannot run C compiled programs.

Es stellt sich heraus, dass mein Antivirus die Ausführung einer frisch kompilierten .exe blockiert hat. Ich habe nur den Antivirus "Resident Shield" deaktiviert und bin zum nächsten Fehler gegangen:

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

Dies löste es: "Installieren Sie entweder eine etwas ältere Version von MinGW oder bearbeiten Sie distutils \ cygwinccompiler.py in Ihrem Python-Verzeichnis, um alle Instanzen von -mno-cygwin zu entfernen." (von Hier)

Jetzt kann ich endlich anfangen zu arbeiten.


55
2018-05-08 15:31



Sieht so aus, als ob er nach VC-Compilern sucht, also könnten Sie versuchen, den Compilertyp mit zu erwähnen -c mingw32, da du msys hast

python setup.py install -c mingw32

23
2018-05-12 10:44