2017-05-19 2 views
1

exécution python 3.6 sur Windows 8.Python 'Aucun module nommé win32gui' après l'installation pywin32

ModuleNotFoundError: No module named 'win32gui' 

J'ai essayé plusieurs installations de pywin32, mais aucun n'a travaillé jusqu'à présent. https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/ passe par l'installation sans problèmes, mais le problème persuade. Même avec l'installation pip: http://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32

Dans ma racine Python, il existe maintenant plusieurs variantes pywin32/win32 dans le dossier site-packages. pywin32.pth ne contient pas de win32gui mais seulement ce qui suit:

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

je pourrais en dernier commutateur de recours à une autre boîte à outils graphique mais comme je suis en utilisant un code opensource qui voudrait dire que j'aurais réécrire beaucoup de code, c'est pourquoi c'est un dernier recours.

Mise à jour: changer la ligne d'importation de:

import win32gui, win32ui, win32con, win32api 

Pour:

from win32 import win32gui, win32ui, win32con, win32api 

Poussé l'erreur:

ImportError: cannot import name 'win32ui' 

mise à jour de la solution:

from win32 import win32gui 
import win32ui, win32con, win32api 

Répondre

2

Cela ressemble beaucoup à un problème 32 bits/64 bits. Si vous utilisez Python 64 bits et que vous avez PythonWin 32 bits, vous verrez ce genre de chose. Les deux win32gui et win32ui sont .pyd fichiers (DLL) et ils doivent vivre respectivement dans Lib\site-packages\win32 et Lib\site-packages\pythonwin.

Si vous pouvez les voir là mais l'importation échoue alors il est probable qu'ils sont la mauvaise bitness. Un exécutable 64 bits ne peut pas charger une DLL 32 bits et vice versa, et si vous essayez, dans la plupart des cas, le message d'erreur vous indiquera que la DLL que vous essayez de charger n'est pas présente. Même quand vous pouvez voir que c'est.

Modifier suite échange de commentaires avec OP:

Vous obtiendrez également ce genre d'erreur avec PythonWin si vous mettez plusieurs importations dans une seule ligne. Suivez PEP-8 et faites une importation sur une ligne.

+0

J'ai vérifié ma version de Python et par 'plate-forme.architecture()' il dit im courant 32 bits. '3.6.1 (v3.6.1: 69c0db5, 21 mars 2017, 17:54:52) [MSC v.1900 32 bits (Intel)]'. Les deux fichiers .pyd sont dans leurs dossiers respectifs. – mtbrands

+0

Quand je fais cela 'de win32gui win32gui, win32ui, win32con, win32api' obtenir la même erreur que vous signalez. C'est parce que win32ui n'est pas dans 'win32'. – BoarGules

+0

Vous voulez dire que cela pourrait être un problème avec le module et avec ce que je fais? – mtbrands