首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CentOS 7上Python3上没有模块'yum‘

在CentOS 7上Python3上没有模块'yum‘
EN

Stack Overflow用户
提问于 2019-12-09 16:28:49
回答 1查看 11K关注 0票数 4

我正在尝试在yum Python包 7中使用CentOS。

Python2中,:我可以成功地使用import yum

Python3中:当我尝试import yum时,我会遇到ModuleNotFoundError: No module named 'yum'

在我安装dnf之后,dnf Python包也会出现同样的问题。

围绕这个问题进行的研究将我带到了CentOS 8,在那里,dnf包确实在Python3上工作。当试图在CentOS 7中查找python3-dnf包(或与yum等效的软件包)时,试图在CentOS 7上安装CentOS 8软件包只会导致与所需软件包的冲突和不匹配。

此外,尝试pip3 install yum没有找到任何包,pip3 install dnf成功,但是导入会发出以下警告:

代码语言:javascript
复制
/usr/local/lib/python3.6/site-packages/dnf.py:15: UserWarning: The DNF Python API is not currently available via PyPI.

Please install it with your distro package manager (typically called
'python2-dnf' or 'python3-dnf'), and ensure that any virtual environments
needing the API are configured to be able to see the system site packages
directory.

  warnings.warn(warning_msg)

因此,目前我无法找到一种在yum 7上运行Python3的本地与dnf/ CentOS代码交互的方法。

EN

回答 1

Stack Overflow用户

发布于 2019-12-12 03:35:20

我的计算机运行Fedora,我无法访问CentOS安装,但我认为下面的信息是正确的。

您使用的yumdnf模块不是您日常使用的pip模块。相反,它们实际上是dnfyum rpms的一部分。

你可以这样检查:

Python2

代码语言:javascript
复制
>>> import yum
>>> help(yum)
(...)
FILE
    /usr/lib/python2.7/site-packages/yum/__init__.py

$ dnf -C repoquery --file /usr/lib/python2.7/site-packages/yum/__init__.py
yum-0:3.4.3-518.fc29.noarch

Python3

代码语言:javascript
复制
>>> import dnf
>>> help(dnf)
(...)
FILE
    /usr/lib/python3.7/site-packages/dnf/__init__.py

$ dnf -C repoquery --file     /usr/lib/python3.7/site-packages/dnf/__init__.py
python3-dnf-0:4.0.4-1.fc29.noarch
python3-dnf-0:4.2.5-5.fc29.noarch

如果您检查yumdnf文件,您会发现它们都是python3脚本

代码语言:javascript
复制
$ head -1 /usr/bin/yum /usr/bin/dnf
==> /usr/bin/yum <==
#!/usr/bin/python3

==> /usr/bin/dnf <==
#!/usr/bin/python3

如果详细查看yum,您将看到它实际上是对dnf模块的调用。

因此,yumdnf模块的可用性将取决于实际安装的命令的版本。

对于dnf,您可以尝试安装python2-dnfpython3-dnf。不过,我不确定你能不能同时拥有它们。我想你可以,因为他们在/usr/bin中有不同的名字。

对于yum,我猜他们提供Python2库是为了向后兼容,但考虑到dnf已经过时了,他们可能不会费心将它迁移到Python3。

同样,对于我的Fedora版本来说,这也是正确的。您的CentOS版本可能会得到不同的结果和包名,但是底线应该是相同的: Python2库只用于yum;为不同的yum版本模块安装不同的dnf包。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59252969

复制
相关文章

相似问题

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