2017-05-19 8 views
1

Lauf Python 3.6 auf Windows 8.Python ‚Kein Modul namens win32gui‘ nach pywin32

ModuleNotFoundError: No module named 'win32gui' 

Ich habe versucht, mehrere Installationen von pywin32 Installation aber keine haben bisher gearbeitet. https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/ geht Installation ohne Probleme, aber das Problem überzeugt. Das gleiche mit pip installing: http://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32

In meinem Python-Root gibt es jetzt mehrere pywin32/win32-Varianten im Site-Pakete-Ordner. pywin32.pth keine win32gui enthält aber nur die folgend:

# .pth file for the PyWin32 extensions win32 win32\lib Pythonwin

ich zu einem anderen GUI-Toolkit als letzten Schalter könnte aber als ich einig Open-Source-Code bin mit dem würde bedeuten, ich habe würde viel Code neu schreiben, weshalb es ein letzter Ausweg ist.

Update: Änderung der Importzeile aus:

import win32gui, win32ui, win32con, win32api 

An:

from win32 import win32gui, win32ui, win32con, win32api 

Pushed der Fehler auf:

ImportError: cannot import name 'win32ui' 

Lösung Update:

from win32 import win32gui 
import win32ui, win32con, win32api 

Antwort

2

Dies ähnelt sehr einem 32-Bit/64-Bit-Problem. Wenn Sie 64-Bit-Python ausführen und Sie 32-Bit-PythonWin haben, werden Sie diese Art von Sache sehen. Sowohl win32gui als auch win32ui sind .pyd Dateien (DLLs) und sie sollten in Lib\site-packages\win32 bzw. Lib\site-packages\pythonwin leben.

Wenn Sie sie dort sehen können, aber der Import fehlschlägt, ist es wahrscheinlich, dass sie die falsche Bissigkeit sind. Eine 64-Bit-ausführbare Datei kann keine 32-Bit-DLL laden und umgekehrt. Wenn Sie dies versuchen, wird Ihnen in den meisten Fällen die Fehlermeldung angezeigt, dass die DLL, die Sie laden möchten, nicht vorhanden ist. Auch wenn du es sehen kannst.

bearbeiten folgenden Austausch von Kommentaren mit OP:

Sie auch diese Art von Fehler mit PythonWin, wenn man mehrere Importe in einer einzigen Zeile. Folgen Sie PEP-8 und führen Sie einen Import in eine Zeile durch.

+0

Ich überprüfte meine Python-Version und über 'platform.architecture()' sagt es im laufenden 32 Bit. "3.6.1 (v3.6.1: 69c0db5, 21. März 2017, 17:54:52) [MSC v.1900 32 bit (Intel)]". Beide .pyd-Dateien befinden sich in ihren jeweiligen Ordnern. – mtbrands

+0

Wenn ich dies 'von win32 import win32gui, win32ui, win32con, win32api' bekomme den gleichen Fehler, wie Sie berichten. Das liegt daran, dass win32ui nicht in 'win32' ist. – BoarGules

+0

Sie meinen, das könnte ein Problem mit dem Modul sein und mit dem, was ich mache? – mtbrands