微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用 Python 3.6 或更高版本的 zc.recipe.egg 安装 zc.buildout

如何解决无法使用 Python 3.6 或更高版本的 zc.recipe.egg 安装 zc.buildout

很长时间以来,我一直在使用 zc.buildout(和 zc.recipe.egg)来构建我的 Python 包并部署我的运行环境。

几天后,我无法再使用任何高于 3.5 的 Python 版本! :(

在启动时,我收到一个错误(在 Gitlab-CI 作业中):

$ pip install zc.buildout
Collecting zc.buildout
  Downloading zc.buildout-2.13.3-py2.py3-none-any.whl (153 kB)
Requirement already satisfied: setuptools>=8.0 in /usr/local/lib/python3.6/site-packages (from zc.buildout) (52.0.0)
Installing collected packages: zc.buildout
Successfully installed zc.buildout-2.13.3
$ buildout
Setting socket time out to 3 seconds.
Creating directory '/builds/G3v_6jyd/0/onf/support/python/pyramid/pyams-v2/pyams-security/develop-eggs'.
Develop: '/builds/G3v_6jyd/0/onf/support/python/pyramid/pyams-v2/pyams-security/.'
warning: no files found matching '*.txt'
warning: no prevIoUsly-included files matching '*.pyc' found anywhere in distribution
warning: no prevIoUsly-included files matching '*.*~' found anywhere in distribution
Couldn't develop '/builds/G3v_6jyd/0/onf/support/python/pyramid/pyams-v2/pyams-security/../ext/lingua' (not found)
Couldn't develop '/builds/G3v_6jyd/0/onf/support/python/pyramid/pyams-v2/pyams-security/../pyams_catalog' (not found)
Couldn't develop '/builds/G3v_6jyd/0/onf/support/python/pyramid/pyams-v2/pyams-security/../pyams_file' (not found)
Couldn't develop '/builds/G3v_6jyd/0/onf/support/python/pyramid/pyams-v2/pyams-security/../pyams_i18n' (not found)
Couldn't develop '/builds/G3v_6jyd/0/onf/support/python/pyramid/pyams-v2/pyams-security/../pyams_mail' (not found)
Couldn't develop '/builds/G3v_6jyd/0/onf/support/python/pyramid/pyams-v2/pyams-security/../pyams_site' (not found)
Couldn't develop '/builds/G3v_6jyd/0/onf/support/python/pyramid/pyams-v2/pyams-security/../pyams_utils' (not found)
Getting distribution for 'zc.recipe.egg==2.0.7'.
Traceback (most recent call last):
  File "<string>",line 1,in <module>
ImportError: cannot import name 'main'
An error occurred when trying to install /tmp/tmp9eg4_d0rget_dist/zc.recipe.egg-2.0.7.tar.gz. Look above this message for any errors that were output by easy_install.
While:
  Installing.
  Getting section package.
  Initializing section package.
  Installing recipe zc.recipe.egg.
  Getting distribution for 'zc.recipe.egg==2.0.7'.
An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/zc/buildout/buildout.py",line 2174,in main
    getattr(buildout,command)(args)
  File "/usr/local/lib/python3.6/site-packages/zc/buildout/buildout.py",line 701,in install
    [self[part]['recipe'] for part in install_parts]
  File "/usr/local/lib/python3.6/site-packages/zc/buildout/buildout.py",in <listcomp>
    [self[part]['recipe'] for part in install_parts]
  File "/usr/local/lib/python3.6/site-packages/zc/buildout/buildout.py",line 1324,in __getitem__
    options._initialize()
  File "/usr/local/lib/python3.6/site-packages/zc/buildout/buildout.py",line 1432,in _initialize
    self.initialize()
  File "/usr/local/lib/python3.6/site-packages/zc/buildout/buildout.py",line 1438,in initialize
    recipe_class = _install_and_load(reqs,'zc.buildout',entry,buildout)
  File "/usr/local/lib/python3.6/site-packages/zc/buildout/buildout.py",line 1388,in _install_and_load
    allow_hosts=buildout._allow_hosts
  File "/usr/local/lib/python3.6/site-packages/zc/buildout/easy_install.py",line 957,in install
    return installer.install(specs,working_set)
  File "/usr/local/lib/python3.6/site-packages/zc/buildout/easy_install.py",line 682,in install
    for dist in self._get_dist(requirement,ws):
  File "/usr/local/lib/python3.6/site-packages/zc/buildout/easy_install.py",line 574,in _get_dist
    dists = [_move_to_eggs_dir_and_compile(dist,self._dest)]
  File "/usr/local/lib/python3.6/site-packages/zc/buildout/easy_install.py",line 1745,in _move_to_eggs_dir_and_compile
    [tmp_loc] = glob.glob(os.path.join(tmp_dest,'*'))
ValueError: not enough values to unpack (expected 1,got 0)

我实际上使用了最新的 setuptools 版本 (52.0.0),并且我需要能够为从 3.5 到 3.9 的所有 Python 版本构建我的包...

有什么想法吗?

最好的问候,

蒂埃里

解决方法

我遇到了同样的问题,相信我已经找到了根本问题。

最新的 setuptools 版本 (52.0.0) 删除了 easy_install 使用的 zc.buildout

请参阅此 PR 以供参考:https://github.com/pypa/setuptools/pull/2544

要解决(至少目前是这样),您可以明确安装/要求先前版本的 setuptools

,

作为 Max Billingsley III 回答的补充:

带有 setuptoolszc.buildout 2.13.3 当前最后一个工作版本是 51.3.3

我创建了一个 pull request 来将此安装要求添加到 zc.buildout,它在合并之前需要 another pull request 来修复损坏的 buildout 构建管道。

已经有一个 zc.buildoutalpha version 也应该可以工作 - 无需固定 setuptools,因为它不再使用 easy_install 而是使用 pip

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?