Ich hatte dieses Problem mit Python 3.4.1 unter Windows 7 x64 und leider hatten die Pakete, die ich brauchte, keine passenden Exe oder Räder, die ich verwenden konnte. Dieses System erfordert ein paar "Umgehungen", die im Folgenden beschrieben werden (und TLDR am Ende ).
Unter Verwendung der Informationen in Jaxrtechs Antwort oben Ich stellte fest, dass ich Visual Studio C++ 2010 benötigte (sys.version return MSC v.1600), also installierte ich Visual C++ 2010 Express über den Link in seiner Antwort, der lautet http://go.microsoft.com/?linkid=9709949 . Ich habe alles mit Updates installiert, aber wie Sie unten lesen können, war das ein Fehler. Zu diesem Zeitpunkt sollte nur die Originalversion von Express installiert werden (keine aktualisierten Versionen).
vcvarsall.bat war nun vorhanden, aber es gab einen neuen Fehler bei der Installation des Pakets, query_vcvarsall raise ValueError(str(list(result.keys())))ValueError: [u'path']
. Es gibt andere Stackoverflow-Fragen mit diesem Fehler, wie zum Beispiel Fehler bei der Erstellung/Installation des C-Moduls für Python 2.7
Dieser Antwort habe ich entnommen, dass 2010 Express nur 32-Bit-Compiler installiert. Um 64-Bit-Compiler (und andere Compiler) zu erhalten, müssen Sie das Windows 7.1 SDK installieren. Siehe http://msdn.microsoft.com/en-us/windowsserver/bb980924.aspx
Bei mir ließ sich das Programm jedoch nicht installieren, und das Installationsprogramm gab die folgende Fehlermeldung aus installation failed with return code 5100
. Ich habe die Lösung unter dem folgenden Link gefunden: http://support.microsoft.com/kb/2717426 . Kurz gesagt, wenn neuere Versionen von x86 und x64 Microsoft Visual C++ 2010 Redistributable installiert sind, geraten sie in Konflikt mit den Versionen im SDK-Installationsprogramm und müssen zuerst deinstalliert werden.
Das SDK wurde dann installiert, aber ich stellte fest, dass vcvars64.bat immer noch nicht in C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
noch seine Unterordner. vcvarsall.bat führt die Batchdatei vcvars64 aus, ohne die das Python-Paket immer noch nicht installiert werden kann (ich habe die Fehlermeldung vergessen, die zu diesem Zeitpunkt angezeigt wurde).
Ich habe dann hier eine Anleitung gefunden: http://www.cryptohaze.com/wiki/index.php/Windows_7_Build_Setup#Download_VS_2010_and_Windows_SDK_7.1 Den Anweisungen folgend, hatte ich bereits Express und 7.1 SDK installiert, also installierte ich SDK 7.1 SP1 und führte die Korrektur der fehlenden Header-Datei durch. Dann erstellte ich manuell vcvars64.bat mit folgendem Inhalt CALL setenv /x64
. Ich werde alle diese Anweisungen hier einfügen, damit sie nicht verloren gehen.
Schritt 1 ist der Download von Visual Studio Express 2010.
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express ist eine gute Anlaufstelle. Laden Sie das Installationsprogramm herunter, und führen Sie es aus (vc_web.exe). Sie brauchen den zusätzlichen SQL 2008-Download nicht.
Sie benötigen außerdem das Windows SDK (derzeit 7.1) für die 64-Bit Compiler - es sei denn, Sie wollen nur 32-Bit-Builds machen, die nicht vollständig unterstützt werden...
http://www.microsoft.com/en-us/download/details.aspx?id=8279 ist eine gute Ausgangspunkt für den Download - Sie sollten winsdk_web.exe ausführen nach dem Herunterladen ausführen!
Die Standardinstallation hier ist in Ordnung.
Laden Sie schließlich das Windows SDK 7.1 SP1 Update herunter und installieren Sie es: http://www.microsoft.com/en-us/download/details.aspx?id=4422
Und, um fehlende Header-Datei zu beheben, VS2010 SP1. http://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=75568aa6-8107-475d-948a-ef22627e57a5
Und, verdammt noch mal, beheben Sie die fehlende Batch-Datei für VS2010 Express. Diese wird geradezu absurd.
En C:\Program Dateien (x86) \Microsoft Visual Studio 10.0 \VC\bin\amd64 , Erstellen Sie "vcvars64.bat" mit folgendem Inhalt (Sie müssen als Administrator ausgeführt werden als Administrator ausführen):
CALL setenv /x64
Mein Python-Paket ließ sich immer noch nicht installieren (ich kann mich nicht an den Fehler erinnern). Ich fand dann einige Anweisungen (unten kopiert), um die spezielle SDK 7.1 Eingabeaufforderung zu verwenden, siehe: https://mail.python.org/pipermail/distutils-sig/2012-February/018300.html
Vergessen Sie diese Frage. Jemandem hier ist dieser Punkt im Menü aufgefallen: Start->Alle Programme->Microsoft Windows SDK v7.1 ->Windows SDK 7.1 Eingabeaufforderung
Damit wird ein Batch-Job ausgeführt, der eine Arbeitsumgebung für den Compiler einzurichten scheint. An dieser Eingabeaufforderung können Sie "setup.py build" oder "setup.py install" eingeben.
Ich öffnete die Windows SDK 7.1 Eingabeaufforderung wie angewiesen und führte easy_install für das Python-Paket aus. Und endlich: Erfolg!
TLDR ;
- Installieren Sie Visual Studio Express 2010 (vorzugsweise ohne aktualisierte Redistributables oder SQL Server).
- Windows 7.1 SDK installieren
- Installieren Sie das SDK 7.1 SP1-Update und den VS2010 SP1-Header-Fix (dieser Schritt ist möglicherweise nicht erforderlich).
- Manuell erstellen
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat
mit Inhalt CALL setenv /x64
- Start->Alle Programme->Microsoft Windows SDK v7.1 ->Windows SDK 7.1 Eingabeaufforderung, um eine spezielle x64-Eingabeaufforderung zu öffnen, die dann mit python/easy_install/pip/etc (einschließlich derer in virtual_envs) verwendet werden kann.
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.