繁体   English   中英

为什么 pip freeze 会返回一些“乱码”而不是 package==VERSION?

[英]why pip freeze returns some "gibberish" instead of package==VERSION?

这是我所做的:

❯ 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 -V
pip 20.2.3 from /Users/aiven/projects/foobar/venv/lib/python3.8/site-packages/pip (python 3.8)

我期待这样的事情:

> pip freeze
foo==1.1.1
bar==0.2.1

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

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

这似乎来自支持PEP 610的更改。 请特别参阅冻结环境部分 “冻结”的概念已经扩展到包括为使用直接源安装的软件包保留直接 url 源。

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

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

pip --disable-pip-version-check list --format=freeze

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM