Was ist hier los? Python-Module können sein in C oder C++ geschriebener Teil (in der Regel für Geschwindigkeit). Wenn Sie versuchen, ein solches Paket mit Pip zu installieren (oder setup.py
), muss es dieses C/C++ aus dem Quellcode kompilieren. Pip setzt schamlos voraus, dass Sie den Compiler Microsoft Visual C++ installiert haben. Wenn Sie ihn nicht haben, sehen Sie die kryptische Fehlermeldung "Error: vcvarsall.bat kann nicht gefunden werden".
Die vorgeschriebene Lösung ist die Installation eines C/C++-Compilers, entweder Microsoft Visual C++ oder MinGW (ein Open-Source-Projekt). Allerdings ist die Installation und Konfiguration eines der beiden Systeme äußerst schwierig. (Edit 2014: Microsoft hat ein spezielles C++-Compiler für Python 2.7)
Die einfachste Lösung ist die Verwendung der Windows-Installationsprogramme (.msi) von Christoph Gohlke für beliebte Python-Pakete. Er baut Installationsprogramme für Python 2.x und 3.x, 32 Bit und 64 Bit. Sie können sie herunterladen von http://www.lfd.uci.edu/~gohlke/pythonlibs/
Wenn auch Sie denken "Fehler: Unable to find vcvarsall.bat" eine lächerlich kryptische und wenig hilfreiche Meldung ist, dann kommentieren Sie bitte den Fehler unter http://bugs.python.org/issue2943 um sie durch eine hilfreichere und benutzerfreundlichere Nachricht zu ersetzen.
Zum Vergleich: Ruby wird mit einem Paketmanager Gem ausgeliefert und bietet einen quasi-offiziellen C/C++-Compiler, DevKit. Wenn Sie versuchen, ein Paket ohne diesen zu installieren, sehen Sie diese hilfreiche, freundliche und nützliche Meldung:
Bitte aktualisieren Sie Ihren PATH, um die Build-Tools einzuschließen, oder laden Sie das DevKit von http://rubyinstaller.org/downloads und folgen Sie den Anweisungen unter http://github.com/oneclick/rubyinstaller/wiki/Development-Kit
Einen längeren Aufschrei über Python-Paketierung können Sie lesen unter https://stackoverflow.com/a/13445719/284795
7 Stimmen
Für die Zukunft wäre es schön zu sehen, auf welcher Plattform Sie dies verwenden.
0 Stimmen
Verwandt: Wie kann ich easy_install auf vcvarsall.bat verweisen?
47 Stimmen
Wenn Sie der Meinung sind, dass dies eine lächerlich kryptische und wenig hilfreiche Fehlermeldung ist, stimmen Sie bitte für den Fehler unter bugs.python.org/issue2943
48 Stimmen
Microsoft bietet jetzt eine Lösung an: microsoft.com/de-us/download/details.aspx?id=44266
6 Stimmen
@MartijnPieters Ich habe versucht, den Link herunterzuladen und zu installieren, den Sie mit wheel und setuptools 7.0 bereitgestellt haben, aber es funktioniert nicht, ich erhalte die Meldung:
C:\Users\User\libfreenect\wrappers\python>python setup.py install
running install running build running build_ext building 'freenect' extension error: Unable to find vcvarsall.bat
2 Stimmen
@MartijnPieters Ihr Link ist "Microsoft Visual C++ Compiler für Python 2.7", es gibt leider keinen analogen Download für Python 3.x
0 Stimmen
@ColonelPanic: siehe meine Antwort unten Es wird für Python 2.6 bis 3.2 funktionieren. Python 3.3 und höher verwenden neuere Visual C++ Compiler-Versionen.
4 Stimmen
Steve Dower (ein Mitarbeiter des Python-Teams von Microsoft) hat einen lesenswerten Blogbeitrag zu diesem Thema geschrieben: blogs.msdn.microsoft.com/pythonengineering/2016/04/11/
0 Stimmen
Wenn Sie Visual Studio verwenden, hat die Microsoft PTVS github etwas über diesen speziellen Fehler zu sagen: github.com/Microsoft/PTVS/wiki/Python-Umgebungen
1 Stimmen
Ich hatte das gleiche Problem mit Python 2.7 auf Windows 10 64-bit, und die Installation von Visuall C++ für Python 2.7 hat nicht geholfen. Was geholfen hat, war ein Vorschlag auf dieser Seite: github.com/cython/cython/wiki/CythonExtensionsOnWindows . Sie müssen Folgendes eingeben
try: from setuptools import setup from setuptools import Extension except ImportError: from distutils.core import setup from distutils.extension import Extension
anstelle von nurfrom setuptools import setup from setuptools import Extension
. Bei mir hat es funktioniert.