首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么pip freeze返回一些“胡言乱语”而不是package==VERSION?

为什么pip freeze返回一些“胡言乱语”而不是package==VERSION?
EN

Stack Overflow用户
提问于 2020-10-04 20:31:16
回答 1查看 347关注 0票数 5

下面是我所做的:

代码语言:javascript
复制
❯ pip freeze
aiohttp @ file:///Users/aiven/Library/Caches/pypoetry/artifacts/50/32/0b/b64b02b6cefa4c089d84ab9edf6f0d960ca26cfbe57fe0e693a00912da/aiohttp-3.6.2-py3-none-any.whl
async-timeout @ file:///Users/aiven/Library/Caches/pypoetry/artifacts/0d/5d/3e/630122e534c1b25e36c3142597c4b0b2e9d3f2e0a9cea9f10ac219f9a7/async_timeout-3.0.1-py3-none-any.whl
attrs @ file:///Users/aiven/Library/Caches/pypoetry/artifacts/7f/e7/44/32ca3c400bb4d8a2f1a91d1d3f22bbaee2f4727a037aad898fbf5d36ce/attrs-20.2.0-py2.py3-none-any.whl
chardet @ file:///Users/aiven/Library/Caches/pypoetry/artifacts/c2/02/35/0d93b80c730b360c5e3d9bdc1b8d1929dbd784ffa8e3db025c14c045e4/chardet-3.0.4-py2.py3-none-any.whl
...

pip版本:

代码语言:javascript
复制
❯ pip -V
pip 20.2.3 from /Users/aiven/projects/foobar/venv/lib/python3.8/site-packages/pip (python 3.8)

我预计会是这样的:

代码语言:javascript
复制
> pip freeze
foo==1.1.1
bar==0.2.1

pip freeze -h并不是很有帮助...

对于上下文:我使用poetry将包安装到了virtualenv中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-05 05:09:45

这似乎来自于支持PEP 610的变化。特别指的是Freezing an environment section。“冻结”的概念已经扩展到包括保留与直接来源一起安装的包的直接url源。

1.1.0引入了一个new installer,它现在可以处理依赖项的工件的发现和下载。这与1.0.10中的行为不同,后者只是让pip处理所需工件(轮子)的发现和下载。这意味着,现在使用直接的URL源来安装包。这会导致pip freeze使用PEP 508中指定的直接引用格式(例如:package @ file://../package.whl)。对于感兴趣的人,有问题的url将保存在虚拟环境的站点目录下的<package>-<version>.dist-info/direct_url.json中。

您可以使用以下命令获取旧格式的输出(不确定将来是否会更改)。

代码语言:javascript
复制
pip --disable-pip-version-check list --format=freeze
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64194634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档