pyInstaller: Erreur d'Importation
Je suis sous Windows, à l'aide de pyInstaller pour compresser un fichier python. Mais quelque chose d'erreur est survenue:
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "D:\Useful Apps\pyinstaller-2.0\PyInstaller\loader\iu.py", line 386, in i
mportHook
mod = _self_doimport(nm, ctx, fqname)
File "D:\Useful Apps\pyinstaller-2.0\PyInstaller\loader\iu.py", line 480, in d
oimport
exec co in mod.__dict__
File "D:\Useful Apps\pyinstaller-2.0\server\build\pyi.win32\server\out00-PYZ.p
yz\SocketServer", line 132, in <module>
File "D:\Useful Apps\pyinstaller-2.0\PyInstaller\loader\iu.py", line 386, in i
mportHook
mod = _self_doimport(nm, ctx, fqname)
File "D:\Useful Apps\pyinstaller-2.0\PyInstaller\loader\iu.py", line 480, in d
oimport
exec co in mod.__dict__
File "D:\Useful Apps\pyinstaller-2.0\server\build\pyi.win32\server\out00-PYZ.p
yz\socket", line 47, in <module>
File "D:\Useful Apps\pyinstaller-2.0\PyInstaller\loader\iu.py", line 409, in i
mportHook
raise ImportError("No module named %s" % fqname)
ImportError: No module named _socket
Je sais que _socket
est en chemin C:\Python27\libs\_socket.lib
, mais comment pouvez laisser le EXE
trouver ce fichier?
OriginalL'auteur Searene | 2013-02-27
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez virtualenv vous devez utiliser l'option "-p" ou "--path='D:...'" option. Comme ceci:
Ce que cela ne génère des foo.le fichier de spécification avec cette pathex chemin
OriginalL'auteur
Cela ressemble à un travail pour caché importations (uniquement disponible dans les dernières versions).
De la documentation
OriginalL'auteur danodonovan
Vous pouvez ajouter le chemin d'accès à votre application fichier spec.
Dans le L'analyse objet vous pouvez spécifier
pathex=['C:\Python27\libs\', 'C:\Python27\Lib\site-packages']
, et tout autre chemin ...Noter que si le chemin n'est pas trouvé, il n'y a pas de problème ... j'ai chemins de linux en tant que bien.
OriginalL'auteur marius_cornescu
Aucune des réponses ci-dessus a fonctionné pour moi, mais j'ai eu à travailler. J'ai été en utilisant openpyxl et il a fallu jdcal dans le datetime.py le module. Aucun cachés, les importations ou l'autre de ces méthodes a aidé, en exécutant l'exe dirais jdcal pas trouvé. La solution que j'ai utilisé était de simplement copier le peu de fonctions de jdcal directement dans le datetime.py dans le openpyxl code. Puis a couru
pyinstaller -F program.py
et cela a fonctionné!
OriginalL'auteur Korben Dallas
Eu des problèmes similaires. Voici mon fix pour PyQt5, cffi, python 3.4.3:
Cela résout le 'sip' pas trouvé d'erreur et le "_cffi_backend' un si qui vient:
Regarder 'pathex" et "hiddenimports" ci-dessus. Ce sont les seuls changements de défaut généré. Générer un exe avec:
pyinstaller LightShowApp.spec -F
J'ai couru qu'à l'extérieur de venv (pip)-win - whateverTF que de la merde!
OriginalL'auteur