简单运行时,Python文件运行良好,但通过PyInstaller生成时显示错误

问题描述

我们将使用Python +安装为source system的库作为Windows系统,将要测试构建可执行文件的Windows系统称为target system(未安装Python)

我们将Python文件称为file1.py

当我仅通过以下命令运行它时,它会按预期运行:

py -3 file1.py

但是,当我通过PyInstaller构建文件时,事情开始变得棘手:

pyinstaller --hidden-import=pkg_resources.py2_warn --onefile file1.py

在源系统中构建文件后,便能够在该系统中运行file1.exe。

但是,在另一个系统上,当我运行file1.exe时,它显示以下运行时错误

Traceback (most recent call last):
  File "file1.py",line 19,in <module>
  File "c:\users\xyz\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\loader\pyimod03_importers.py",line 623,in exec_module
  File "site-packages\sklearn\__init__.py",line 74,in exec_module
  File "site-packages\sklearn\base.py",line 20,in exec_module
  File "site-packages\sklearn\utils\__init__.py",line 25,in exec_module
  File "site-packages\sklearn\utils\fixes.py",line 18,in exec_module
  File "site-packages\scipy\stats\__init__.py",line 388,in exec_module
  File "site-packages\scipy\stats\stats.py",line 180,in exec_module
  File "site-packages\scipy\stats\distributions.py",line 11,in exec_module
  File "site-packages\scipy\stats\_continuous_distns.py",line 21,in <module>
  File "_stats.pyx",line 1,in init scipy.stats._stats
ModuleNotFoundError: No module named 'scipy.special.cython_special'
[8768] Failed to execute script file1

在file1.py中,在行号为import的语句。根据上面显示的运行时错误,第19个是:

from sklearn.metrics import mean_squared_error

我尝试升级/降级scikit-learn的版本号,但是.exe甚至没有在源系统中运行。

在这里做错什么了吗?

更新:我尝试将scipy版本从1.5.2更改为1.4.1,如下所示:

pip install scipy==1.4.1 --force-reinstall

在那之后,我用PyInstaller重新构建了python文件。 .exe这次也在源系统中运行。

但是,目标系统中有一个错误

Traceback (most recent call last):
  File "file1.py",line 75,in exec_module
  File "site-packages\sklearn\utils\_show_versions.py",line 12,in <module>
ImportError: DLL load Failed: The specified module Could not be found.
[4372] Failed to execute script file1

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)