2014-10-08 18 views
9

Ich habe wxPython 3.0.1.1 installiert, aber ich kann nicht import wx mit Python 3.4.1. Ich erhalte die folgende Fehlermeldung:Wie wxPython für Python 3 verwenden?

Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 00:54:21) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import wx 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named 'wx' 

Trotzdem kann ich import wx wenn ich Python 2.7 (die Standard-Installation in meinem OS X 10.9) verwenden:

Python 2.7.5 (default, Mar 9 2014, 22:15:05) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import wx 
>>> 

Wie kann ich WxPython für Python 3 und speziell für Python 3.4.1?

+0

Vielleicht müssen Sie den Standort des Moduls manuell hinzufügen zu 'sys. path': 'sys.path.insert ("/location/of/wx ")' Hier ist eine detailliertere Beschreibung: http://stackoverflow.com/questions/279237/import-a-module-from- a-relativer-Pfad – jotrocken

+0

@jotrocken Wie kann ich es so machen, dass es dauerhaft ist? – Nick

+0

http://stackoverflow.com/questions/3402168/permanently-add-a-directory-to-pythonpath – jotrocken

Antwort

11

Sie haben zwei verschiedene Pythons auf Ihrer Maschine installiert (3.4.1 und 2.7.5). Erwarten Sie nicht, dass Sie ein in einem Python (wxPython 3.0.1.1 unter Python 2.7.5) installiertes Paket automatisch in einem anderen Python verwenden können.

Zusätzlich funktioniert WxPython (classic) nicht für Python 3. Sie brauchen wxPython Phoenix, um dies zu können.

EDIT: Die empfohlene Methode (durch @RobinDunn) wxPython (die Phoenix-Sorte, die auf 2,7 und 3 now hosted on PyPI arbeiten) zu installieren, wird heute gerade dabei:

pip install wxPython 

Wenn Sie den Entwickler haben Version installiert ist, wie folgt vorgehen nur die vorher:

pip uninstall wxPython_Phoenix 

Sie können versuchen, 3.4.1 eine von the wxPython Phoenix snapshots in Ihrem Python zu installieren. Denken Sie jedoch daran, dass Phoenix nicht zu 1000% mit Classic kompatibel ist und Sie den einen oder anderen Schluckauf erleben können, wenn Sie klassischen Code wiederverwenden (but transitioning its doable und es wert ist).

Sie können eine vollständige Erklärung/Beschreibung in der folgenden WxPython Wiki unter folgendem Link finden:

Installing wxPython-Phoenix using pip

Es gibt einige wichtige Punkte:

  • dass pip/setuptool neu genug ist (> 6.xx /> 12.xx)

  • dass die Builds "inoffiziell" sind und somit pip weigert sich, es zu installieren: im Grunde müssen Sie --pre hinzufügen, wenn Sie mit pip installieren.

  • , dass Sie auf die SSL-Verifizierung --trusted-host wxpython.org verzichten (wird in modernen Versionen nicht mehr benötigt, in denen https jetzt ordnungsgemäß funktioniert).

Voll Befehl für Windows-Rechner:

C:\python27\scripts\pip.exe install --upgrade --pre -f https://wxpython.org/Phoenix/snapshot-builds/ wxPython_Phoenix 

Beachten Sie, dass diese WxPython Phoenix für Python 2.7 installiert.

+0

Um der Antwort von @nepix32 ein bisschen mehr hinzuzufügen, werden die Kern-Widgets von Phoenix portiert, aber nicht alle benutzerdefinierten Widgets. Wenn Sie die Kernfunktionalität von wxPython nutzen möchten, sollte Phoenix für Sie arbeiten. –

+0

@MikeDriscoll Kannst du mir einen Hinweis auf den Entwicklungsstatus von Phoenix geben? – Nick

+0

Sicher. Sie können http://wiki.wxpython.org/ProjectPhoenix nachsehen. Ich würde auch empfehlen, die wxPython-dev-Google-Gruppe durchzusehen. –

0

Ihre sys.path in einem Dolmetscher Check:

import sys 
sys.path 

Wenn Sie nicht über den entsprechenden Link in das richtige Verzeichnis haben, wird es nicht funktionieren.

überprüfen Sie auch Lib/site-Pakete in Ihrem Python-Verzeichnis auf Ihrem Python richtig installiert sicher wx machen 3. (es sollte beginnen mit „wx-3.0“ ein Verzeichnis sein)

+0

Ich weiß nicht, was die richtige Verbindung zum richtigen Verzeichnis ist. – Nick

+0

Kennen Sie Ihr Python-Verzeichnis? Überprüfen Sie dieses Verzeichnis, gehen Sie in Lib, dann in Site-Pakete. Es sollte ein Verzeichnis geben, das mit "wx-3.0" beginnt. Das ist der, nach dem Sie suchen. Ist es in Ihrem sys.path? – inirlan

2

Wie es scheint, ist wxPython für Python 3 noch nicht vollständig portiert, obwohl die Versionsnummer das vermuten lässt. Aus diesem Grund ist die wx-Module nicht auf die sys.path von Python hinzugefügt 3.

Sie können entweder regeln für die Verwendung von WxPython von Python 2.7 oder einen Blick in diesem SO Eintrag: Still no wxPython for Python 3 (or 3.3) yet? Dies ist, was @ nepix32 vorgeschlagen.

Alternativ können Sie auch eine andere GUI-Bibliothek verwenden, die mit Python 3 arbeitet. Hier ist eine list.

+1

wxPython 3.x hat nichts mit Pythons Namenskonventionen zu tun.Es folgt WxWidgets Versionsnummerierungsschema. Auch der Phoenix-Port von wxPython unterstützt Python 3, ist aber zu diesem Zeitpunkt kein vollständiger Port. –

+0

Danke für die nützlichen Informationen +1 – Nick

7

Um wxPython mit Ihrem Python 3.4x verwenden zu können, müssen Sie wxPython Phoenix verwenden - wie andere bereits erwähnt haben. Um es zu installieren können Sie tun:

pip install -U --pre -f http://wxpython.org/Phoenix/snapshot-builds/ wxPython_Phoenix 

Hinweis, den Raum nach dem letzten ‚/‘ und wxPython_Phoenix

+1

Sie erhalten eine Warnung, wenn Sie die 'http' Version anstelle der' https' Version verwenden. – JeromeJ

0

Vielleicht sind die angegebenen Lösungen früher gearbeitet. Aber was heute für mich gearbeitet (1. Juni 2017) war:

pip install - U - - pre - f https://wxpython.org/Phoenix/snapshot-builds/ wxPython 

immer die Readme.txt für diese prüfen ...