(接受更具描述性标题的建议)
我正在尝试使用 Pyinstaller 打包我的脚本,并在尝试运行 exe 时得到以下信息:
File "PyInstaller\loader\pyimod02_importers.py", line 385, in exec_module
File "apryse_sdk\__init__.py", line 17, in <module>
File "PyInstaller\loader\pyimod02_importers.py", line 385, in exec_module
File "PDFNetPython3\__init__.py", line 17, in <module>
ModuleNotFoundError: No module named 'PDFNetPython'
引发此错误的主脚本中的导入如下所示:
from apryse_sdk import *
其中关联的
__init__.py
包含嵌套导入:
...
from PDFNetPython import *
注意,这里的
PDFNetPython
是本地导入的。查看文件结构:
Directory: C:\Program Files\Anaconda2022\Lib\site-packages\apryse_sdk
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 9/11/2023 12:56 PM __pycache__
-a---- 9/7/2023 1:13 PM 45508632 PDFNetC.dll
-a---- 9/7/2023 1:13 PM 12 PDFNetPyLibInfo
-a---- 9/7/2023 1:13 PM 658347 PDFNetPython.py
-a---- 9/7/2023 1:13 PM 7536128 _PDFNetPython.pyd
-a---- 9/11/2023 1:33 PM 474 __init__.py
我一直看到
--hidden-import
参数的语法只是 --hidden-import=<Module>
但这是否适用于本地导入?在我看来并非如此。解决方法是什么?
你必须尝试2种解决方案....
1-它正在将您的 python 版本更新到最新版本的 python ....
2-如果它仍然出现,您应该获取该库并将其放在您的程序旁边并将其与它合并,以便能够从应用程序文件导入它
选择数字 2 是什么意思?
我的意思是你必须以图书馆为例,这是它的名字
the_library
并通过添加此附加命令将其插入或合并到您拥有的最终应用程序中
--add-data(你的库的路径)
此操作将获取库并将其与应用程序合并并正常生成一个文件
您还可以使用相同的命令添加文件而不仅仅是文件夹。
您可以使用
auto-py-to-exe
库来更轻松地将文件或文件夹合并和添加到您的应用程序中。
你可以通过这个命令安装它
pip 安装 auto-py-to-exe
之后仅通过调用名称来打开它auto-py-to-exe
你可以选择你的Python文件和图标
之后,您可以选择要添加的文件、文件夹或库,如下所示:
然后通过 添加文件夹
选择要添加的文件夹之后你可以看到下面的命令,这个助手(auto-py-to-exe)使这个操作变得更容易。
重要提示:
并非所有时候您都必须像这样添加库......当我们在使用 PyInstaller 添加库时遇到问题时,我们会这样做