Python-Paket-Installationsfehler

8

Nicht genau auf die Programmierung bezogen, sondern auf einen Fehler, mit dem ich beim Installieren eines Python-Pakets mit python setup.py install konfrontiert bin.

Ich habe die TAR-Datei für das PyML-Paket heruntergeladen. Nach dem Extrahieren habe ich die folgenden Schritte ausgeführt:

Bei der DOS-Eingabeaufforderung setzen Sie die Variable wie folgt:

%Vor%

Gehen Sie in das Verzeichnis mit der Datei setup.py im extrahierten PyML-Ordner und führen Sie Folgendes aus:

%Vor%

Aber auf beiden Schritten bekomme ich Fehler wie unten, in Bezug auf ext / hash_map wurde keine solche Datei gefunden.

  

C: \ Programme (x86) \ Microsoft Visual Studio 11.0 \ VC \ INCLUDE \ xlocale (336): wa       rning C4530: C ++ - Ausnahme-Handler verwendet, aber Semantik zum Abwickeln ist nicht aktiviert. S       pecify / EHsc

     

e: \ ajit \ pyml-0.7.13.tar \ dist \ pyml-0.7.13 \ pyml \ container \ ext \ SparseDataSet.h (14)        : fataler Fehler C1083: Include - Datei kann nicht geöffnet werden: 'ext / hash_map': Keine solche Datei oder       Verzeichnis

     

Fehler: Befehl '"C: \ Programme (x86) \ Microsoft Visual Studio 11.0 \ VC \ BIN \ cl.e       xe "'ist fehlgeschlagen mit dem Exit-Status 2

Was vermisse ich? Wie man diesen Fehler auflöst und PyML installiert.

Python-Version: 2.7.5 MSC v.1500 32 Bit (Intel)] auf Win32 auf Windows 8-Rechner.

PyML-Version: 0.7.13

    
goldenmean 23.10.2013, 22:02
quelle

1 Antwort

3

Zuerst wird empfohlen, den gleichen Compiler zu verwenden, wie er verwendet wurde um Python-Binärdateien zu erstellen, was VS8:

ist
  

Python 2.6, 2.7 und 3.1 sind alle mit dieser Version erstellt (d. h. 2008).    Wegen einer anderen langen Tradition müssen Python-Erweiterungsmodule sein   mit der gleichen Compiler-Version (genauer CRT-Version)   wie Python selbst. Also um Erweiterungsmodule für diese zu erstellen   Releases benötigen Sie eine Kopie von VS 2008 oder VS 2008 Express.

Also wahrscheinlich Ihre nächste Frage füllen "Wie den C ++ - Compiler für die Verwendung einer bestimmten CRT-Version erzwingen? "

Zweitens ist dies in Ihrem Fall keine Lösung, da es unterschiedliche Syntax gibt, einschließlich tr1 Bibliotheken in gcc und msvs Siehe diese Frage zum Beispiel. Anstelle von # include <ext/hash_map> für MSVS muss # include <hash_map> sein. Wenn Sie darauf bestehen, MSVS zu verwenden, werden Sie wahrscheinlich den PyML-Code ändern.

Wahrscheinlich können Sie zu MinGW-Nutzung wechseln, hier ist ein Schritt-für-Schritt-Anleitung , ich habe auch nicht überprüft, ob PyML auf diese Weise erstellt werden kann. Wird nicht in der Lage sein, es vor dem 14. November zu tun.

    
alko 10.11.2013 20:38
quelle