模块"pip"没有属性"pep425tags"



当我尝试用pip安装.whl时

它说:

... is not a supported wheel on this platform

为了解决这个问题,我搜索了互联网,它说我可以将其输入到 repl 中

import pip; print(pip.pep425tags.get_supported())

有了这个,我可以看到pip支持的标签和版本

但是,当我输入此代码时,它说:

AttributeError: module 'pip' has no attribute 'pep425tags'

怎么了?

(Python 3.6 上的 pip 10.0.1(

要打印具有当前版本的pip的兼容标签列表:

$ path/to/pythonX.Y -m pip debug --verbose

pip debug子命令自 v19.2(2019 年 7 月(起可用。


要从 Python 代码中获取兼容标签的列表,我建议使用packaging库及其packaging.tags.sys_tags()函数:

import packaging.tags
tags = packaging.tags.sys_tags()
print('n'.join([f'{tag.interpreter}-{tag.abi}-{tag.platform}' for tag in tags]))

这适用于我的Python 2.7(在该版本的虚拟环境中(:

import wheel.pep425tags
print(wheel.pep425tags.get_supported())

对于 pip v10,请使用以下命令:

import pip._internal; print(pip._internal.pep425tags.get_supported())

使用 Python 3.6.8 和 pip 19.1.1

python -c "import wheel.pep425tags as w print(w.get_supported())"

工作!

输出:

[('cp36', 'cp36m', 'win_amd64'), ('cp36', 'none', 'win_amd64'), ('cp36', 'none', 'any'), ('cp3', 'none', 'any'), ('cp35', 'none', 'any'), ('cp34', 'none', 'any'), ('cp33', 'none', 'any'), ('cp32', 'none', 'any'), ('cp31', 'none', 'any'), ('cp30', 'none', 'any'), ('py3', 'none', 'win_amd64'), ('py36', 'none', 'any'), ('py3', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]

主要问题是pep425tagswheel模块的内部内容。我相信它从来没有打算那样使用,它总是会发生变化。我自己刚才面对这个问题,我注意到wheel==0.34.1pep425tagswheel==0.35.0没有。

因此,如果您真的想使用此模块,请务必pip3 install wheel==0.34.1.

试试这个,如果你有一个新版本的pip,你只需要get_supported函数调用的结果:

python -c "from pip._internal.utils.compatibility_tags import get_supported; print(get_supported())"
# output:
[<cp310-cp310-win_amd64 @ 2517399109376>, <cp310-abi3-win_amd64 @ 2517399104384>, <cp310-none-win_amd64 @ 2517399161408>, <cp39-abi3-win_amd64 @ 2517399103040>, <cp38-abi3-win_amd64 @ 2517399294208>, <cp37-abi3-win_amd64 @ 2517399294464>, <cp36-abi3-win_amd64 @ 2517399294720>, <cp35-abi3-win_amd64 @ 2517399294976>, <cp34-abi3-win_amd64 @ 2517399295232>, <cp33-abi3-win_amd64 @ 2517399295488>, <cp32-abi3-win_amd64 @ 2517399104000>, <py310-none-win_amd64 @ 2517399296320>, <py3-none-win_amd64 @ 2517398433664>, <py39-none-win_amd64 @ 2517399296512>, <py38-none-win_amd64 @ 2517399296704>, <py37-none-win_amd64 @ 2517399296960>, <py36-none-win_amd64 @ 2517399297216>, <py35-none-win_amd64 @ 2517399297472>, <py34-none-win_amd64 @ 2517399297728>, <py33-none-win_amd64 @ 2517399297984>, <py32-none-win_amd64 @ 2517399298240>, <py31-none-win_amd64 @ 2517399298496>, <py30-none-win_amd64 @ 2517399298752>, <cp310-none-any @ 2517399299264>, <py310-none-any @ 2517399299008>, <py3-none-any @ 2517399299520>, <py39-none-any @ 2517399299840>, <py38-none-any @ 2517399300032>, <py37-none-any @ 2517399300288>, <py36-none-any @ 2517399300544>, <py35-none-any @ 2517399300800>, <py34-none-any @ 2517399301056>, <py33-none-any @ 2517399301312>, <py32-none-any @ 2517399301568>, <py31-none-any @ 2517399301824>, <py30-none-any @ 2517399302080>]

AMD64

import pip._internal;print(pip._internal.pep425tags.get_supported())

WIN32

import pip;print(pip.pep425tags.get_supported())

然后通过相应的平台轮pip install <.whl>(https://www.lfd.uci.edu/~gohlke/pythonlibs/(

我的GNU-Linux机器中有几个版本的Python,这给我带来了一些问题。 Python 2.7, 3.4, 3.6, ...

太乱了!我知道。:)

每次我使用 python3 并运行以下代码时:

import wheel.pep425tags
print(wheel.pep425tags.get_supported())

和你一样,我也遇到了这个错误:

AttributeError: 'module' object has no attribute 'pep425tags'

通过在堆栈溢出内部冲浪,我注意到以下一些问题可能对您有所帮助:

重要的是要知道你的 pip 或 pip3 被设置为哪个版本的 Python: 我的我的,pip设置为 python 2.7,pip3 也设置为python 3.6

首先,检查您的 pip 或 pip3 的版本:

pip -V

pip3 -V

当我使用 pip3 时,它会产生:

pip 20.0.2 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)

这表明我的pip3使用 python3.6,这让我直接进入python3.6控制台。 在这种情况下,它有效并产生:

[('cp36', 'cp36m', 'linux_x86_64'), ('cp36', 'abi3', 'linux_x86_64'), ('cp36', 'none', 'linux_x86_64'), ('cp35', 'abi3', 'linux_x86_64'), ('cp34', 'abi3', 'linux_x86_64'), ('cp36', 'none', 'any'), ('cp3', 'none', 'any'), ('cp35', 'none', 'any'), ('cp34', 'none', 'any'), ('cp33', 'none', 'any'), ...]

我希望这些步骤对您有用。

我也有这个问题。但是我按照以前的方法犯了一个错误。 在此处输入图像描述类型错误:get_supported(( 缺少 1 个必需的位置参数:"archive_root",解决方案是在 get_supported(( 中添加参数win_amd64。

import wheel.pep425tags as w
print(w.get_supported("win_amd64")

此信息已过时

一个 bash 单行,适用于Py2.7 和 Py3.6pip-18.1

python3 -c "import wheel.pep425tags as w; print(w.get_supported())" |sed -zE 's/),/),n/g'

最新更新