如何强制Python Poetry使用特定的setuptools版本?

kgsdhlau  于 2022-10-30  发布在  Python
关注(0)|答案(1)|浏览(325)

我想在我的项目中使用Python库pyhash。依赖项由Poetry管理。如果我将pyhash作为依赖项添加,我会得到一个构建错误:error in pyhash setup command: use_2to3 is invalid .
这是一个众所周知的bug,因为setuptools > 58.0.0不再支持use_2to3。在非Poetry的安装中,修复很容易。只需将setuptools降级到〈= 58.0.0:pip3 install setuptools==58.0.0 .
但是,在一个Poetry项目中,我无法使其工作。我添加了setuptools=58.0.0作为依赖项,但是当我安装我的项目时,我仍然得到use_2to3错误。我假设Poetry仍然使用setuptools>58.0.0
我该如何解决这个问题?

azpvetkf

azpvetkf1#

我找到了一个解决问题的方法。在pyhash的例子中,master分支中对use_2to3has already been removed的依赖。不幸的是,这个修复还没有发布。但是,pip和poetry可以直接从github仓库安装。任何ref都可以指定,所以分支、标签和单独的提交都可以。
poetry的变通方法意味着你必须添加git仓库的pyhash依赖项作为源代码:

poetry add git+https://github.com/flier/pyfasthash.git#20a53f9bb7bf15f98e3e549f523b49e1e0f62e15

也可以指定master,但这是不可取的,因为任何分支都是移动的目标,将导致不可复制的释放。

相关问题