【发布时间】:2021-07-23 20:26:34
【问题描述】:
我真的很想得到帮助。 我用 PysimpleGUI 做了一个图形界面。在这个脚本中,我运行一个程序,从语音识别库和 spaCy 管道中,名称实体被捕获,然后作为脚本其余部分的输入传递(基本上,从 pandas 数据框中获取数据,做一些数学运算并更新数据集)。 我使用 PyCharm 作为 IDE 并且可以工作。 spaCy 管道重新训练以捕获我所做的其他标签。新模型保存在脚本的同一个项目文件夹中,并在需要时加载(基本上,有一个窗口可以按下按钮并说话;检测到语音,然后单击另一个按钮将文本传递到提取标签)。
当我尝试使用 PySimpleGUI-exemaker 和 Pyinstaller 创建此文件的 .exe 时,我遇到了一些错误。当使用带有“onefolder”选项的 PyInstaller 时,我启动创建的 .exe 文件(进入 dist 文件夹)我看到:
C:\Users\Simone>C:\Python_Project\Combat_Workshop\Vocal_Workshop\dist\vocal_menu\vocal_menu.exe
Traceback (most recent call last):
File "vocal_menu.py", line 6, in <module>
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "voice_recognition.py", line 4, in <module>
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "estrazione_input.py", line 1, in <module>
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "spacy\__init__.py", line 11, in <module>
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "thinc\api.py", line 2, in <module>
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "thinc\initializers.py", line 4, in <module>
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "thinc\backends\__init__.py", line 7, in <module>
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "thinc\backends\ops.py", line 10, in <module>
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "thinc\util.py", line 27, in <module>
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "torch\__init__.py", line 135, in <module>
OSError: [WinError 126] Impossibile trovare il modulo specificato. Error loading "C:\Python_Project\Combat_Workshop\Vocal_Workshop\dist\vocal_menu\torch\lib\caffe2_detectron_ops_gpu.dll" or one of its dependencies.
[4568] Failed to execute script 'vocal_menu' due to unhandled exception!
我真的不明白这里发生了什么:
OSError: [WinError 126] Impossibile trovare il modulo specificato. Error loading "C:\Python_Project\Combat_Workshop\Vocal_Workshop\dist\vocal_menu\torch\lib\caffe2_detectron_ops_gpu.dll" or one of its dependencies.
[4568] Failed to execute script 'vocal_menu' due to unhandled exception!
第一行翻译为:OSError: [WinError 126] Impossible to find the module
然后,如果我尝试创建为“onefile”,则在从控制台运行 PyInstaller 期间会出现这些警告:
102276 INFO: Looking for dynamic libraries
103138 WARNING: lib not found: torch_python.dll dependency of c:\users\simone\anaconda3\envs\deep_learning2\lib\site-packages\torch\_C.cp38-win_amd64.pyd
103300 WARNING: lib not found: torch_cpu.dll dependency of c:\users\simone\anaconda3\envs\deep_learning2\lib\site-packages\torchvision\_C.pyd
103304 WARNING: lib not found: torch_cuda.dll dependency of c:\users\simone\anaconda3\envs\deep_learning2\lib\site-packages\torchvision\_C.pyd
103310 WARNING: lib not found: c10.dll dependency of c:\users\simone\anaconda3\envs\deep_learning2\lib\site-packages\torchvision\_C.pyd
103313 WARNING: lib not found: c10_cuda.dll dependency of c:\users\simone\anaconda3\envs\deep_learning2\lib\site-packages\torchvision\_C.pyd
103684 WARNING: lib not found: torch_cpu.dll dependency of c:\users\simone\anaconda3\envs\deep_learning2\lib\site-packages\torchaudio\_torchaudio.pyd
103689 WARNING: lib not found: c10.dll dependency of c:\users\simone\anaconda3\envs\deep_learning2\lib\site-packages\torchaudio\_torchaudio.pyd
当我启动 .exe 文件(从 dist 文件夹)时,我收到了这个警告:
[388] WARNING: file already exists but should not: C:\Users\Simone\AppData\Local\Temp\_MEI3882\torch\_C.cp38-win_amd64.pyd
现在,在项目文件夹中,我放置了从 spaCy 管道保存的模型。创建的“dist”文件夹大小为 1GB。我把运行脚本所需的任何 .py 文件放在那里。 当我用另一个脚本(没有任何神经网络)做同样的事情时,一切都像魅力一样,所以我认为问题是一些火炬或 cuda 库。 我已经安装了 pytorch(通过 conda)和 CUDA 10,并且在 PyCharm 上一切正常。拥有最新版本的 PyCharm 和 Anaconda。
现在,我试图从过去 3 个小时中寻找答案,但此时我放弃了。 我真的不知道该怎么办。有什么帮助吗?
编辑:几个小时后我明白了一件事:找不到火炬库,是因为在同一 conda 环境中的 spacy 和 pytorch 在 PyInstaller 编译时会产生警告。我正在创建 2 个 conda 环境,一个用于 spaCy,一个用于 Pytorch
【问题讨论】:
标签: python pyinstaller spacy pysimplegui