

RHEL8で以下のコマンドを実行

[code]

    python -c ’import yum, pprint; yb =yum.YumBase(); pprint.pprint(yb.conf.yumbar,width=1)’
    
[/code]

実行結果(エラー)

[code]

    Traceback (most recent call last):
     File "<string>, line 1, in<module>"
    ImportError: No module named yum
    
[/code]


CC BY-SA 4.0
2022-10-03T05:09:35.250
91413
2022-10-08T04:13:31.230
2022-10-03T07:33:25.380
3060
54672
question
python yum rhel
RHEL8でImportError: No module named yumを解決したい


まずバージョンを指定しないpythonコマンドをPython3.6に設定する。

[code]

    alternatives --set python /usr/bin/python3
    
[/code]

その後以下のコマンドを実行する。

[code]

    python -c 'import dnf, pprint; db = dnf.dnf.Base(); pprint.pprint(db.conf.substitutions,width=1)'
    
[/code]


CC BY-SA 4.0
2022-10-08T03:19:28.947
91493
2022-10-08T04:13:31.230
2022-10-08T04:13:31.230
54672
54672
91413
answer


[RHEL 8 の導入における検討事項 - API の可用性](https://access.redhat.com/documentation/ja-
jp/red_hat_enterprise_linux/8/html-
single/considerations_in_adopting_rhel_8/index#_availability_of_apis)に

> **YUM v3** が提供する以前の Python API は利用できなくなりました。 **YUM v4** (DNF Python API)
> が提供する安定し、完全に対応する新しい API に、使用しているプラグインおよびスクリプトを移行することが推奨されます。新しい DNF Python
> API のドキュメントは、「DNF API Reference」により提供されます。

と説明されているように、`import yum`は使えなくなり`import dnf`とした上で、DNF APIを使用する必要があります。

なお、RHEL7のYUM Python APIはyumパッケージに含まれますし、RHEL8のDNF Python
APIもpython3-dnfパッケージに含まれます。そのため、「個別にインストールしたpython2.7.18」では扱うことができません。


CC BY-SA 4.0
2022-10-08T03:58:55.737
91494
2022-10-08T03:58:55.737
4236
91413
answer