在Ubuntu上使用pyinstaller构建可执行文件时出错

时间:2020-06-22 06:16:59

标签: python pyinstaller

我写了一个小的python脚本来了解如何使用pyinstaller构建可执行文件。脚本是

import numpy
import scipy

from scipy.optimize import linear_sum_assignment
from scipy.spatial.distance import cosine
from scipy.sparse.csgraph import _validation  


value_cos = cosine(0.2, 0.8) * 0.5
print('\n cos value calculated using cosine', value_cos)
cost = numpy.array([[4, 1, 3], [2, 0, 5], [3, 2, 2]])   

ls_assign = linear_sum_assignment(cost)
print("\n ls_assignment value :", ls_assign)

构建可执行文件时没有看到任何错误,但是当我进入dist目录并尝试运行可执行文件时,出现以下错误

Traceback (most recent call last):
  File "site-packages/PyInstaller/loader/rthooks/pyi_rth_pkgres.py", line 13, in <module>
  File "/home/puneet/miniconda3/envs/nuitka/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 623, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages/pkg_resources/__init__.py", line 85, in <module>
ModuleNotFoundError: No module named 'pkg_resources.py2_warn'
[210875] Failed to execute script pyi_rth_pkgres

我不确定在生成可执行文件时是否缺少任何参数。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

感谢Vignesh的回复。我只是通过添加

对错误进行了排序
import pkg_resources.py2_warn

位于其他进口商品的顶部。现在可执行文件可以正常工作了。

答案 1 :(得分:0)

尝试修改此注释行15,并在以下文件中添加以下行以隐藏导入 在python 38 Windows FIXED中,将此行添加到Python38 / Lib / site-packages / PyInstaller / hooks / hook-pkg_resources.py

#hiddenimports = collect_submodules('pkg_resources._vendor')
hiddenimports = collect_submodules('pkg_resources._vendor') + ['pkg_resources.py2_warn']