web-dev-qa-db-fra.com

Python 3.6.x PyInstaller donne l'erreur "Aucun module nommé 'PyQt5.sip'"

J'ai développé quelques programmes qui fonctionnent bien sur Python 3.5.4, mais à cause d'erreurs sur win32, je suis allé à Python 3.6.4, mais quand Je construis mon projet avec pyinstaller, j'obtiens:

C:\Users\User\Desktop\dist\mycommentator>mycommentator.exe
Traceback (most recent call last):
  File "mycommentator.py", line 6, in <module>
  File "c:\users\user\appdata\local\programs\python\python36\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 714, in load_module
    module = loader.load_module(fullname)
ModuleNotFoundError: No module named 'PyQt5.sip'
[1532] Failed to execute script mycommentator

J'ai essayé de réinstaller python, j'ai donc installé Python 3.6.4/Python 3.6.5, cette erreur m'est également arrivée. Peu importe le code dans PyQt5 que je construis, à chaque fois cette erreur.

J'ai aussi essayé de déplacer sip.pyd dans le dossier du projet, mais une erreur se produit toujours. J'ai aussi essayé pip install --upgrade sip, cela n'a pas aidé. J'ai également essayé d'installer la version de développement du pyinstaller, cela n'a pas aidé non plus.

10
Joe Doe

J'ai eu le même problème qui est apparemment un bogue connu car sip est maintenant installé séparément.

https://github.com/pyinstaller/pyinstaller/issues/36

Lors de la création du programme d'installation, j'ai ajouté la ligne:

--hidden-import PyQt5.sip

Cela n'a pas fonctionné.

15
johnashu