几天前,我想运行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'
我不知道发生了什么,我希望有人可以帮助我找到问题并解决。我唯一知道的是,这可能与我使用conda在python中安装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 谢谢!
答案 0 :(得分:1)
我遇到了同样的问题,但经过反复尝试,唯一有效的方法是:
Environment variable WEBSITE_DNS_ not defined is received
这将宣布您的python3 rpm软件包。
我已经从网上搜索并下载了它
转到下载的目录,例如:
rpm -qa python3
我尝试了许多其他方法,因此这不是解决该问题的唯一因素。
答案 1 :(得分:1)
你好,
我刚刚在Fedora 31中进行了此操作,并且不完全知道是什么原因导致了同样的问题,它一定是某个软件包管理了另一个上下文,而这仅是我下一次使用DNF的需要。
我假设在出现上述错误之前:
Traceback (most recent call last): File "/usr/bin/dnf", line 57, in from dnf.cli import main ModuleNotFoundError: No module named 'dnf'
您在执行dnf时收到此消息:
/usr/local/lib/python3.7/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.
经过几个小时的研究,并尝试安装DNF rpm本身的每个DNF rpm依赖项(https://pkgs.org/download/dnf),我觉得很直觉,也许我应该尝试删除(mv确定)
/usr/local/lib/python3.7/
其中只有一个文件夹名为site-packages
成功了!
谢谢。
答案 2 :(得分:0)
我有一个遇到相同问题的朋友。
他试图通过一些惊人的cmd python3.7
和rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps
在Linux服务器中卸载whereis python3 |xargs rm -frv
。
这导致yum
和dnf
损坏。
我将/usr/bin/yum
更改为使用本地python3.8
版本,但最终导致ModuleNotFoundError: No module named 'dnf'
并没有解决。
这不是在Internet上下载许多rpm软件包的好方法。而且我也不能使用yum。但是我有另一台相同的Linux OS服务器,因此我尝试复制有关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
。
答案 3 :(得分:0)
我遇到了同样的问题。 对我来说,解决方案是简单地卸载我显然在某个时候安装的 python3 dnf 包(包括所有 virtualenvs)。
pip uninstall dnf