pyinstaller - 排除模块

pyinstaller - Excluding Modules

首先让我告诉你,我是 Python 的新手。

我有一个非常简单的 python 文件,我想将其转换为 exe。

由于文件很简单,一开始不想加模块,需要的一个一个加,测试是否需要。

为此,正如 Whosebug 中一些 post 的建议,我正在通过终端上的这些命令在我的 Visual Studio 代码 IDE 中创建并激活一个新的虚拟环境;

python -m virtualenv testenv
testenv\Scripts\activate

然后我检查以确保没有通过 pip freeze 安装模块,是的,没有安装模块。

现在我进入这个虚拟环境;

pyinstaller test.py --clean

安装程序会创建必要的文件和文件夹,但尽管在此虚拟环境中没有安装任何模块,但我看到在 dist 文件夹中创建了很多模块,这些模块实际上安装在主 python 环境中。

我在这里错过了什么?

是否还有一个关键字/选项/规范文件选项用于排除当前环境中安装的所有模块并仅包括选定的模块? (PS 我知道 spec 文件中的 --exclude-module 选项和 excludes=[] 选项,但不想一一输入所有已安装的模块名称。)

非常感谢任何帮助。

激活虚拟环境后,确保pip install pyinstaller。否则,您将使用可以访问所有全局模块的全局 pyinstaller。

通过将 pyinstaller 安装到您的虚拟环境中,当您 运行 命令时,它将只能访问虚拟环境中的模块。

如果之后您仍然继续看到模块,那么这些模块是 pyinstaller 认为 运行 可执行文件所必需的模块。