3

我必须使用 conda 安装 pytorch,然后在尝试升级系统时出现此错误:

sudo dnf upgrade
Traceback (most recent call last):
  File "/bin/dnf", line 57, in <module>
    from dnf.cli import main
  File "/usr/lib/python3.6/site-packages/dnf/__init__.py", line 31, in <module>
    import dnf.base
  File "/usr/lib/python3.6/site-packages/dnf/base.py", line 26, in <module>
    from dnf.comps import CompsQuery
  File "/usr/lib/python3.6/site-packages/dnf/comps.py", line 29, in <module>
    import dnf.util
  File "/usr/lib/python3.6/site-packages/dnf/util.py", line 32, in <module>
    import librepo

ModuleNotFoundError: No module named 'librepo'

我看到了一些使用 yum-deprecated 重新安装 python 的答案,但似乎我的机器上没有它。我不想再次重新安装 linux,我正在寻找该问题的答案。

通过 conda 安装 pytorch 时,它还安装了 cuda。也许这可能是个问题?在此之前,我记得(不确定,但有点)我默认使用 python2.7 运行,现在是 python 3.6..

4

2 回答 2

6

首先是修复问题的神奇单线:

echo 'import sys;sys.path += ["/usr/lib64/python3.6/site-packages/", "/usr/lib64/python3.6/"]' | sudo tee /usr/lib/python3.6/site-packages/lib64.pth

使用 conda 安装 jupyterlab 后出现同样的错误。出于某种原因,conda 安装了它自己的 python 版本,它掩盖了 Fedora 的版本。Conda 的 python 从 /usr/lib/ 搜索库,而 fedora 也搜索 /usr/lib64/。在大多数 linux 发行版上,/usr/lib/ 是 /usr/lib64/ 的链接或其他方式,因此可以使用其中任何一个。librepo 安装在 /usr/lib64/ 中。

我的结论:

  • Fedora 与 conda 不完全兼容。
  • Fedora 错误报告以重复的形式关闭,并带有指向明显不相关报告的链接。
于 2018-02-10T22:56:53.653 回答
0

我在 Fedora 28 中偶然发现了同样的问题。我使用 anaconda 作为 root 来更新系统范围内的软件包,这打破了 dnf 的消息

ModuleNotFoundError: No module named 'librepo'

yum-deprecated 不起作用,尽管 Fedora 在自动查询后为我安装了它(有点奇怪,因为 dnf 和 yum 不起作用,所以这起作用了)。为了解决这个问题,我删除了现有的 libpython,从rpmfind下载了 python3 和 python3-lib rpms ,并安装了新的 rpms

rm -rf /usr/lib/libpython3*.*
rpm -iv --replacepkgs python3-3.6.6-1.fc28.x86_64.rpm
rpm -iv --replacepkgs python3-libs-3.6.6-1.fc28.x86_64.rpm

现在我知道在系统范围内使用 pip 比使用 anaconda 更好。

于 2018-07-25T09:28:23.100 回答