6

我在 Windows 8.1 上使用 Python 3.3.5 和 cx-freeze 4.3.3。

我正在尝试 cx_freeze 使用 pkg_resources 的程序。

我最初将它放在包下的安装文件中,但是当我尝试冻结它时,进程因错误而停止Import Error: No module named 'pkg_resources'

在此处输入图像描述

然后我将它从安装文件中的包移动到包含。这次 cx_freeze 进程完成了,但是当我尝试启动应用程序时,我收到了另一条错误消息。

在此处输入图像描述

如果我去我的 IDE 并尝试导入 pkg_resources 它工作正常。

>>> import pkg_resources
>>> pkg_resources
<module 'pkg_resources' from 'C:\\Python33\\lib\\site-packages\\setuptools-18.0.1-py3.3.egg\\pkg_resources\\__init__.py'>

这里有一个类似的问题解决方案是重新安装setuptools。所以我下载了 setuptools 18.0.1 并通过 cmd 安装它,但它并没有解决我的问题,而且我仍然遇到与 cx_freeze 相同的错误。

任何帮助使它工作将不胜感激。

编辑:我的解决方案(hack)是从 yagmail 中写出依赖项。Yagmail的原始_innit__.py...

from pkg_resources import get_distribution
__project__ = 'yagmail'
__version__ = get_distribution(__project__).version

我首先在其中放了一个打印语句以获取版本,然后对其进行硬编码。

__project__ = 'yagmail'
__version__ = '0.4.84'

虽然这已经解决了我的问题,但它并不是真正的答案,所以如果有人有一个保留 pkg_resources 的解决方案,它将保持开放状态。

4

0 回答 0