[英]Pyinstaller error after updating latest PySide
我有一個可用的 python(3.6.8) 和 Pyside(5.12.0) 應用程序。
以前我能夠創建一個文件 exe 並且它運行良好。
但是在將 Pyside 更新到 5.12.2 后,我無法運行應用程序。 有 ModuleNotFoundError: No module named 'typing'
我已經安裝了打字模塊(pip 安裝打字)。 我試圖卸載 pyside(5.12.2) 並重新安裝 pyside(5.12.0)
但我仍然遇到同樣的錯誤。 這是錯誤。
Problem importing shibokensupport:
No module named 'typing'
Traceback (most recent call last):
File "(builtin)", line 93, in ensure_shibokensupport
File "(builtin)", line 133, in bootstrap
File "C:\Users\LS0020\AppData\Local\Temp\embedded.u2j069ui.zip\shibokensupport\signature\loader.py", line 156, in <module>
import typing
ModuleNotFoundError: No module named 'typing'
sys.path:
C:\Users\LS0020\AppData\Local\Temp\embedded.u2j069ui.zip
C:\Users\LS0020\AppData\Local\Temp\_MEI101642\base_library.zip
C:\Users\LS0020\AppData\Local\Temp\_MEI101642
Traceback (most recent call last):
File "(builtin)", line 93, in ensure_shibokensupport
File "(builtin)", line 133, in bootstrap
File "C:\Users\LS0020\AppData\Local\Temp\embedded.u2j069ui.zip\shibokensupport\signature\loader.py", line 156, in <module>
ModuleNotFoundError: No module named 'typing'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "(builtin)", line 133, in bootstrap
File "contextlib.py", line 99, in __exit__
File "(builtin)", line 102, in ensure_shibokensupport
SystemExit: -1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "(builtin)", line 147, in bootstrap
UnboundLocalError: local variable 'loader' referenced before assignment
SystemError: could not initialize part 2
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "demo.py", line 1, in <module>
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "c:\program files\python36\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "site-packages\PySide2\__init__.py", line 51, in <module>
File "site-packages\PySide2\__init__.py", line 21, in _setupQtDirectories
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "c:\program files\python36\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
SystemError: PyEval_EvalFrameEx returned a result with an error set
[7584] Failed to execute script demo
我對 cx_freeze 有完全相同的問題。 構建 cx_freeze 應用程序並運行后,出現錯誤:
Problem importing shibokensupport:
No module named 'typing'
Traceback (most recent call last):
File "(builtin)", line 93, in ensure_shibokensupport
File "(builtin)", line 133, in bootstrap
File "/tmp/embedded.mp0z2vy0.zip/shibokensupport/signature/loader.py", line 156, in <module>
import typing
我將手動typing
添加到需要包含在 cx_freeze setup.py
中的包中:
# -*- coding: utf-8 -*-
import sys
from cx_Freeze import setup, Executable
options = {
'build_exe': {
'packages': [
'os',
'typing'
],
'excludes': [
'tkinter'
]
}
}
base = None
if sys.platform == 'win32':
base = 'Win32GUI'
executables = [
Executable('qt_test1.py', base=base)
]
setup(
name='qt_test1',
version='0.1',
description='My GUI application!',
options=options,
executables=executables
)
這樣做。 它現在運行。
這意味着對於 PyInstaller,您必須以這種方式調用它:
$ pyinstaller your_app.py --hidden-import="typing"
實際上,我不知道 PyInstaller 是否有更好的方法來顯式地將模塊添加到構建過程中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.