python - 诗歌安装失败并出现 EnvCommandError:查找版本 2020.12.21.3-lambda,为什么?
问题描述
诗歌无法完成任何install
或add
没有EnvCommandError
与无法找到一个setup.py
有关的问题soupsieve
。
它查找版本“2020.12.21.3-lambda”,我不明白为什么它不像其他依赖项那样从具有正常版本的远程源加载依赖项。
$ poetry update
Updating dependencies
Resolving dependencies... (54.1s)
Writing lock file
Package operations: 59 installs, 0 updates, 0 removals
• Installing soupsieve (2020.12.21.3-lambda): Failed
EnvCommandError
Command ['/home/git/my-project/.venv/bin/pip', 'install', '--no-deps', 'file:///home/Library/Caches/pypoetry/artifacts/22/36/ca/c8aae41f80011be881aa337cc80abc25ffd8542471c325e4410afa86c8/authorities-deployer-2020.12.21.3-lambda.zip'] errored with the following return code 1, and output:
Looking in indexes: ... # censored proxy
Processing /home/Library/Caches/pypoetry/artifacts/22/36/ca/c8aae41f80011be881aa337cc80abc25ffd8542471c325e4410afa86c8/authorities-deployer-2020.12.21.3-lambda.zip
ERROR: Command errored out with exit status 1:
command: /home/git/my-package/my-package/.venv/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/q6/xjd92kc90zsds149_rx08cy40000gp/T/pip-req-build-40kngare/setup.py'"'"'; __file__='"'"'/private/var/folders/q6/xjd92kc90zsds149_rx08cy40000gp/T/pip-req-build-40kngare/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/q6/xjd92kc90zsds149_rx08cy40000gp/T/pip-pip-egg-info-02b8jxuf
cwd: /private/var/folders/q6/xjd92kc90zsds149_rx08cy40000gp/T/pip-req-build-40kngare/
Complete output (5 lines):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/local/Cellar/python@3.9/3.9.0_5/Frameworks/Python.framework/Versions/3.9/lib/python3.9/tokenize.py", line 392, in open
buffer = _builtin_open(filename, 'rb')
FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/q6/xjd92kc90zsds149_rx08cy40000gp/T/pip-req-build-40kngare/setup.py'
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
WARNING: You are using pip version 20.3.1; however, version 20.3.3 is available.
You should consider upgrading via the '/home/git/my-package/my-package/.venv/bin/python -m pip install --upgrade pip' command.
at ~/.poetry/lib/poetry/utils/env.py:1074 in _run
1070│ output = subprocess.check_output(
1071│ cmd, stderr=subprocess.STDOUT, **kwargs
1072│ )
1073│ except CalledProcessError as e:
→ 1074│ raise EnvCommandError(e, input=input_)
1075│
1076│ return decode(output)
1077│
1078│ def execute(self, bin, *args, **kwargs):
这个包在一段时间内工作得很好。我不记得在pyproject.toml
. 我尝试检查旧版本的pyproject.toml
,看看是否可能发生了意外更改。结果相同。
我还尝试删除.venv/
诗歌创建并重新创建它。结果相同。
我不知道soupsieve
作为依赖项会在哪里出现。它在诗歌创建的环境中使用普通的旧 pip 安装得很好。
cd project/
poetry shell
pip install soupsieve # Installs 2.1 without a problem
解决方案
快速解决
所以根本问题与 . 无关poetry
,但我至少能够通过显式添加特定版本的子依赖项来解除对这个问题的阻碍。
pip add soupsieve==2.1
根本问题
真正的问题是我们的系统通过一个被错误元数据毒化的私有工件存储库代理所有内容:它包含命名soupsieve
为实际上不是soupsieve
.
一旦我们删除了这些东西,poetry
就可以恢复正常工作。
推荐阅读
- python - Numpy 数组进入 if 语句修改其值
- python - 如何在 Python 中将字符串格式的二进制文件转换为真正的二进制对象?
- github - GitHub 未正确克隆 Wiki
- docker - pdf2htmlEX - 由于编译错误,Docker 镜像构建失败
- youtube-api - Wordpress 和 Revolution Slider - “onPlayerStateChange”不再触发
- java - 在 JAX-RPC 1.1 WS 中隐藏 WSDL
- azure-devops - Azure DevOps 不允许将 xlsm 文件添加为 wiki 中的链接
- java - MaterialDatePicker android选择指定日期之前而不是指定日期
- git - 在 .gitattributes 中排除文件被视为文本
- c++ - 如何使临时变量的指针在将来有效?