gpt4 book ai didi

python - Cx_Freeze 找不到 pkg_resources/*.*'

转载 作者:太空宇宙 更新时间:2023-11-03 11:21:15 24 4
gpt4 key购买 nike

我正在尝试通过以下命令使用 cx_Freeze setup.py 文件构建 EXE:

python setup.py bdist_msi

命令的输出以:

结尾

Copying data from package pkg_resources... error: [Error 3] The system cannot find the path specified: 'C:\Program Files\Anaconda2\lib\site-packages\setuptools-27.2.0-py2.7.egg\pkg_resources/*.*'

我不知道该怎么做。我已经检查过,setuptools 的 egg 存在,里面有一个 pgk_resources 库,我不知道该怎么做。

我正在使用 conda 安装和 python2.7。

我们将不胜感激。

最佳答案

那是因为 cx_Freeze 无法处理作为打包的 .egg 安装的包的子包。与 Anaconda 不同,普通的 Python 安装使用 pip,它总是解压 .egg

对应问题:Failed to find module in subpackage in zipped egg · Issue #120 · anthony-tuininga/cx_Freeze .它链接到 pull request修复:

diff --git a/cx_Freeze/finder.py b/cx_Freeze/finder.py
--- a/cx_Freeze/finder.py
+++ b/cx_Freeze/finder.py
@@ -61,6 +61,15 @@
If the module is found, this returns information in the same format
as :func:`imp.find_module`. Otherwise, it returns None.
"""
+ # FIX: retrieve_loadable_module dict uses paths with OS's separator
+ # as keys. However the path received as argument can have mixed
+ # slashes. This may cause some searches to fail when they should
+ # work. One case where this seems critical is when there are
+ # subpackages inside an egg package.
+ #
+ # See `record_loadable_module` method to see how mixed slashes
+ # happen.
+ path = os.path.normpath(path)
try:
return self.retrieve_loadable_module(path, modulename)
except KeyError:

按照其他答案中的建议,用 pip install --upgrade 将你拥有的所有 .egg 替换为解压版本只是一个临时解决方案 - 直到你得到另一个.egg.

关于python - Cx_Freeze 找不到 pkg_resources/*.*',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42609043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com