可执行文件说没有找到模块,即使包安装在Conda环境中



我在Conda环境下使用PyInstaller创建了一个名为citygrows_demo的Python可执行文件。

我运行conda install nltk将这个包安装到环境中,当我运行conda list时,我可以看到nltk包已经安装了。

然后,我使用命令 创建了名为common_fields_script.exe的可执行文件
pyinstaller "C:UserslaknaOneDriveDesktopCityGrowscommon_fieldscommon_fields_script.py" --onefile --icon="C:UserslaknaOneDriveDesktopCityGrowscommon_fieldstouchscreen_book_bookmark_ebook_icon_191190.ico"
然而,当我运行这个可执行文件时,它说没有名为nltk的模块

.为什么会这样?

在使用虚拟环境时,使用conda activate citygrows_demo激活环境,然后安装conda install nltk

但是问题是python本身是可执行的,并且python代码是被解释的。可执行文件common_fields_script.exe.

如果您在common_fields_script中编写了python脚本,请将其保存为common_fields_script.py,并使用在虚拟环境中创建的python.exe在终端中运行它,如下所示:

(citygrows_demo) C:/<path_where_your_scirpt_is>> python common_fields_script.py

我认为pyinstaller在创建可执行文件时缺少一个模块。

要修复此问题,请运行pyi-makespec "C:UserslaknaOneDriveDesktop citygrow common_fieldscommon_fields_script.py"然后在规范文件中编辑要导入的模块。

这里有一个关于如何做到这一点的好例子。简而言之,您需要手动添加nltk包的绝对路径,该nltk包安装在上面命令创建的.spec文件的data部分中。

完成后,运行pyinstaller common_fields_spec。规范"C: lakna OneDrive 用户桌面 CityGrows common_fields common_fields_script.py"

最新更新