Pyinstaller:导入错误无法加载python扩展模块

问题描述 投票:0回答:1

我使用制造商提供的两个库创建了一个处理相机的应用程序。 我已经下载了wheel文件并将它们安装在我的venv中

pip install ids_peak-1.7.2.0-cp38-cp38-win_amd64.whl
pip install ids_peak_ipl-1.10.0.0-cp38-cp38-win_amd64.whl

pycharm 中一切正常。 我尝试使用 pyinstaller 创建一个 exe 文件。我在我的 venv 中安装了 pyinstaller,然后在终端中安装:

pyinstaller -F -w -i IDS.ico main.py

当我运行 exe 文件时,出现此错误:

ImportError:无法加载Python扩展模块!要么是 找不到共享库“ids_peak_ipl”或该库 您使用的版本比绑定旧(预期为 v1.10.0.0)

warn-main 文件包含以下内容:

missing module named __builtin__ - imported by ids_peak.ids_peak (optional), ids_peak_ipl.ids_peak_ipl (optional), ids_peak.ids_peak_ipl_extension (optional) 
missing module named _peak_ipl_python_interface - imported by ids_peak_ipl.ids_peak_ipl (conditional)
missing module named _posixsubprocess - imported by subprocess (optional) 
missing module named _ids_peak_ipl_python_extension - imported by ids_peak.ids_peak_ipl_extension (conditional) 
missing module named _ids_peak_python_interface - imported by ids_peak.ids_peak (conditional)

我不太了解 pyinstaller,我该怎么办?

python pyinstaller
1个回答
0
投票

我不熟悉您正在使用的自定义库,但不知何故,包或包生成的某些工件以某种方式没有与您的可执行文件捆绑在一起。我可能会查看有关添加数据文件的相关答案

pip 安装的依赖项的源代码通常不是问题,但问题是当包执行特殊操作(例如构建工件或其他文件)时。我必须自己执行此操作一次,因为我使用的是在运行时动态生成 SSL 证书的包,但我需要将该证书捆绑在可执行文件本身中。我通过使用以下命令构建可执行文件来完成此操作:

pyinstaller -F my_program.py --add-data="$(python3 -c "from CertPackage import cert; print(cert()):CertPackage"
© www.soinside.com 2019 - 2024. All rights reserved.