【问题标题】:Executable file when running is showing errors but the python file from which it is converted is running and working fine运行时的可执行文件显示错误,但从中转换它的 python 文件正在运行并且工作正常
【发布时间】:2021-09-13 08:45:29
【问题描述】:

我已将 Python 文件转换为可执行文件,我想运行可执行文件,但它显示错误。 python 文件运行良好,没有任何错误。

EXE 文件错误:

Traceback (most recent call last):
  File "VeerP.py", line 101, in <module>
  File "PyInstaller\loader\pyimod03_importers.py", line 540, in exec_module
  File "sklearn\ensemble\__init__.py", line 8, in <module>
  File "PyInstaller\loader\pyimod03_importers.py", line 540, in exec_module
  File "sklearn\ensemble\_forest.py", line 56, in <module>
  File "PyInstaller\loader\pyimod03_importers.py", line 540, in exec_module
  File "sklearn\tree\__init__.py", line 6, in <module>
  File "PyInstaller\loader\pyimod03_importers.py", line 540, in exec_module
  File "sklearn\tree\_classes.py", line 41, in <module>
  File "sklearn\tree\_criterion.pyx", line 1, in init sklearn.tree._criterion
ModuleNotFoundError: No module named 'scipy.special.cython_special'
[19216] Failed to execute script VeerP

【问题讨论】:

  • 您使用什么将 Python 程序包装在可执行文件中?这并不明显,但确实很重要。
  • 我正在使用 PyInstaller 将 Python 程序打包成可执行文件
  • 将 Python 程序包装在可执行文件中比您想象的要复杂得多,尤其是在它具有广泛依赖关系的情况下。这可能是pyinstaller 所说的“隐藏导入”。 pyinstaller 文档有一个非常有用的部分,称为When things go wrong。我建议你完成它。
  • @BoarGules 你能否详细说明,如何用一些代码调用“隐藏导入”?
  • 您需要执行此操作的代码称为.spec 文件,正如文档所解释的那样。请阅读它们。如何处理隐藏导入太长太复杂,我在这里总结一下。

标签: python scikit-learn scipy executable


【解决方案1】:

也许您在一个和另一个中使用不同的 Python 解释器。从命令行运行时,尝试

/usr/bin/python3.8 myfile.py

那就试试

./myfile.py

#!/usr/bin/python3.8

是文件的第一行。 (实际路径可能在您的机器上有所不同。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-29
    • 1970-01-01
    • 2013-06-26
    • 2020-01-02
    • 1970-01-01
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多