【问题标题】:Executable file says no module found even though package is installed in Conda environment可执行文件显示即使在 Conda 环境中安装了软件包,也找不到模块
【发布时间】:2021-08-04 20:49:45
【问题描述】:

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

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

然后我使用命令创建了名为common_fields_script.exe 的可执行文件

pyinstaller "C:\Users\lakna\OneDrive\Desktop\CityGrows\common_fields\common_fields_script.py" --onefile --icon="C:\Users\lakna\OneDrive\Desktop\CityGrows\common_fields\touchscreen_book_bookmark_ebook_icon_191190.ico"

但是,当我运行这个可执行文件时,它说没有名为 nltk 的模块

为什么会这样?

【问题讨论】:

  • 你是如何创建可执行文件的?
  • @osint_alex 我运行它来创建可执行文件pyinstaller "C:\Users\lakna\OneDrive\Desktop\CityGrows\common_fields\common_fields_script.py" --onefile --icon="C:\Users\lakna\OneDrive\Desktop\CityGrows\common_fields\touchscreen_book_bookmark_ebook_icon_191190.ico"
  • 环境中是否安装了pyinstaller

标签: python conda pyinstaller


【解决方案1】:

由于您使用的是虚拟环境,请使用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

【讨论】:

  • 是的,它在终端中运行良好。但问题在于可执行文件
【解决方案2】:

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

要解决此问题,请运行 pyi-makespec "C:\Users\lakna\OneDrive\Desktop\CityGrows\common_fields\common_fields_script.py",然后在规范文件中编辑它导入的模块。

有一个很好的例子来说明如何做到这一点here。简而言之,您需要在上述命令创建的 .spec 文件的 datas 部分中手动添加 conda 安装的 nltk 包的绝对路径。

完成后,运行 pyinstaller common_fields_spec.spec "C:\Users\lakna\OneDrive\Desktop\CityGrows\common_fields\common_fields_script.py"

【讨论】:

  • 在哪里可以找到这个规范文件?
  • 你需要使用第一个命令 - pyi-makespec "C:\Users\lakna\OneDrive\Desktop\CityGrows\common_fields\common_fields_script.py"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-20
  • 2023-01-31
  • 2019-01-05
  • 1970-01-01
  • 1970-01-01
  • 2021-02-13
  • 1970-01-01
相关资源
最近更新 更多