2

几天前我想运行 dnf 但我收到以下错误

Traceback (most recent call last):
  File "/usr/bin/dnf", line 57, in <module>
    from dnf.cli import main
ModuleNotFoundError: No module named 'dnf'

因此我尝试运行 yum 并收到类似的信息:

Traceback (most recent call last):
  File "/usr/bin/yum", line 57, in <module>
    from dnf.cli import main
ModuleNotFoundError: No module named 'dnf'

我不知道发生了什么,我希望有人可以帮助我找到问题并解决它。我唯一知道的是,这可能与我在 python 中使用 conda 安装 tensorflow 的前几天有关。尽管 conda 现在似乎不起作用,因为我明白了:

Traceback (most recent call last):
  File "/usr/bin/conda", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3126, in <module>
    @_call_aside
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3110, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3139, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 581, in _build_master
    ws.require(__requires__)
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 898, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 784, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'conda==4.5.11' distribution was not found and is required by the application

我正在使用fedora 29 谢谢!

4

4 回答 4

3

我遇到了同样的问题,但经过反复试验,唯一真正起作用的是:

rpm -qa python3

这将宣布您的 python3 rpm 包。

我已经从网上搜索并下载了它

转到下载的目录,例如:

sudo rpm -e --nodeps python3-3.7.2-4.fc29.x86_64(my python3 rpm package)
sudo rpm -i python3-3.7.2-4.fc29.x86_64.rpm

我尝试了许多其他方法,因此这不是解决该问题的唯一因素。

于 2019-03-22T07:46:37.970 回答
1

你好,

我刚刚在 Fedora 31 中经历过这个,不知道是什么原因导致了同样的问题,它一定是某个包在另一个上下文中管理,只有在我下次需要使用 DNF 时才会出现。

我假设在此声明的错误之前:

回溯(最近一次通话最后):
  文件“/usr/bin/dnf”,第 57 行,在
    从 dnf.cli 导入主要
ModuleNotFoundError:没有名为“dnf”的模块

您在执行 dnf 时收到此消息:

/usr/local/lib/python3.7/site-packages/dnf.py:15:用户警告:DNF Python API 目前无法通过 PyPI 获得。

请使用您的发行包管理器安装它(通常称为
'python2-dnf' 或 'python3-dnf'),并确保任何虚拟环境
需要将 API 配置为能够看到系统站点包
目录。

经过几个小时的研究并尝试安装 DNF rpm 本身的每个 DNF rpm 依赖项(https://pkgs.org/download/dnf),我觉得我可能应该尝试删除(mv sure)

/usr/local/lib/python3.7/

其中只有一个名为 site-packages 的文件夹

有效!

谢谢你。

于 2020-03-29T15:13:20.703 回答
0

我遇到过同样的问题。对我来说,解决方案是简单地卸载我显然在某个时候安装的 python3 dnf 包(包括所有 virtualenvs 包)。

pip uninstall dnf
于 2020-12-28T16:57:35.107 回答
0

我有一个朋友遇到了同样的问题。

他试图python3.7通过一些惊人的 cmdrpm -qa|grep python3|xargs rpm -ev --allmatches --nodepswhereis python3 |xargs rm -frv.
这导致yumanddnf中断。

我更改/usr/bin/yum为使用本地python3.8版本,但它最终导致ModuleNotFoundError: No module named 'dnf',并没有解决它。

在 Internet 上下载很多 rpm 包不是一个好方法。而且我也不能使用 yum。但是我有另一个相同的 linux 操作系统服务器,所以我尝试复制有关python3.7.

$ rpm -ql python3-3.7.0-9.h4.eulerosv2r8.aarch64> py.log
$ while read -r line;do dirname $line |xargs -I {} ssh root@$remoteip "mkdir -p {}" ;scp $line root@$remoteip:$line  ;done<py.log

$ rpm -ql python3-libs-3.7.0-9.h4.eulerosv2r8.aarch64 >pylib.log
$ while read -r line;do dirname $line |xargs -I {} ssh root@$remoteip "mkdir -p {}" ;scp $line root@$remoteip:$line  ;done<pylib.log

scp -r /usr/lib/python3.7/site-packages root@$remoteip:/usr/lib/python3.7/

我就这样恢复yum了。

于 2020-09-24T07:12:20.657 回答