我目前正在从事一个依赖于python的Ansible项目。对于模块,python3-dnf模块是必需的。在目标服务器(AlmaLinux 8.6)上已经安装了python3-dnf:
$ dnf install python3-dnf
Last metadata expiration check: 3:36:12 ago on Thu 06 Oct 2022 07:42:20 AM CEST.
Package python3-dnf-4.7.0-8.el8.alma.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!我发现,python3-dnf只为平台-python版本3.6安装:
$ ls -l /usr/lib/python3.6/site-packages/
[...]
drwxr-xr-x. 9 root root 4.0K Oct 6 11:08 dnf
drwxr-xr-x. 3 root root 4.0K May 10 19:36 dnf-plugins
drwxr-xr-x. 3 root root 44 Sep 5 10:29 dnfpluginscore
$ /usr/libexec/platform-python
Python 3.6.8 (default, Sep 13 2022, 07:19:15)
[GCC 8.5.0 20210514 (Red Hat 8.5.0-10)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dnf
>>>因为当我尝试用最新安装的python版本3.9导入dnf时:
Python 3.9.7 (default, Apr 21 2022, 08:39:11)
[GCC 8.5.0 20210514 (Red Hat 8.5.0-10)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dnf
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'dnf'因此,我的问题是:是否可以告诉dnf ( dnf install python3-dnf ) insall模块不是用于平台- python版本,而是用于最新的python版本,或者指定python版本?
谢谢
发布于 2022-10-06 11:26:47
我发现,python3-dnf只为平台-python3.6Version安装:
dnf只能安装AlmaLinux版本的Python模块。如果您使用dnf install python3,您将有一个/usr/bin/python3二进制文件,它可以看到使用dnf安装的dnf模块。
如果通过其他机制安装Python3.9,则需要手动管理依赖项。
我目前正在开发一个依赖于python的Ansible项目。
由于您使用的是Ansible,一种选择是通过设置ansible_python_interpreter=/usr/libexec/platform-python来简单地使用platform-python版本。
https://stackoverflow.com/questions/73971549
复制相似问题