CentOS 7上的Python 3上没有模块'yum'

问题描述 投票:1回答:1

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

Python 2]中:我可以成功import yum

Python 3]中:当我尝试import yum时,遇到ModuleNotFoundError: No module named 'yum'

安装dnf后,dnf Python package发生完全相同的问题。

研究此问题后,我进入了CentOS 8,其中dnf软件包确实适用于Python 3。尝试在CentOS 7中查找python3-dnf软件包(或yum的等效软件包)时。尝试在CentOS 7上安装CentOS 8软件包只会导致我与所需软件包发生冲突和不匹配。

此外,尝试pip3 install yum找不到任何包,并且pip3 install dnf成功,但导入时会发出以下警告:

/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)

[因此,目前我无法找到一种方法,可以在CentOS 7上运行Python 3与Python代码与yum / dnf进行本地交互。

我正在尝试在CentOS 7中使用yum Python软件包。在Python 2中:我可以成功导入yum。在Python 3中:当我尝试导入yum时,遇到ModuleNotFoundError:没有名为“ yum”的模块。 ...

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

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

您可以这样检查:

Python2

>>> 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

>>> 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脚本

$ head -1 /usr/bin/yum /usr/bin/dnf
==> /usr/bin/yum <==
#!/usr/bin/python3

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

[如果详细查看yum,您会发现它实际上是对dnf模块的调用。

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

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

对于yum,我猜测他们提供了Python 2库以实现向后兼容,但是考虑到dnf已将其淘汰,因此他们可能并没有费心将其移至Python 3。

同样,对于我的Fedora版本,这都是正确的。您的CentOS版本可能会得到不同的结果和软件包名称,但底线应该相同:Python2 lib仅用于yum;为不同的Python版本模块安装不同的dnf软件包。

python python-3.x centos7 rhel7
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.