我在使用 apt 安装/卸载东西时遇到问题。我认为这是因为我卸载了 python,而 apt 正在尝试使用它。我有 miniconda,但当我使用 apt 时,它无法访问这个 miniconda 版本。我该如何让它这样做?
更多信息:
$ ls -l /usr/bin/\*python\*
/usr/bin/python -> /home/neiltheory/miniconda2/bin/python
/usr/bin/python2 -> python2.7
/usr/bin/python2.7
/usr/bin/python3 -> /home/neiltheory/miniconda2/bin/python
/usr/bin/python3.6
/usr/bin/python3.6m
/usr/bin/python3m -> python3.6m
/usr/bin/x86_64-linux-gnu-python2.7-config
/usr/bin/x86_64-linux-gnu-python-config -> x86_64-linux-gnu-python2.7-config
当我做:
sudo apt remove python3.6
我收到一堆 dpkg 错误和一个建议:
apt --fix-broken install
...这也会产生一堆 Python 错误。
编辑:解决方案:
在从源代码重新构建适当的系统 Python 并将它们安装到同一位置后apt
,dpkg
系统又开始正常运行。然而,一切并不完全顺利 - 我的一些使用 Python 的程序并没有 100% 正常工作。具体来说,终端应用程序terminator
不断崩溃,物理程序“MadGraph”也无法完全运行。由于不是 Python 专家,而且迫切需要继续我的工作,所以我删除了所有程序,安装了全新的 Ubuntu,并发誓再也不碰系统 Python 安装。学到了教训,但也许尚未找到解决方案。
我不确定回答自己的问题的礼仪,并且我不确定这是否构成对进一步问题的回答:
问题:除了完全重新安装之外,有没有更好的方法来解决这个问题?
答案1
切勿将系统范围内的 python 链接更改为其他内容。这会破坏 dpkg 软件包系统!另请参阅这邮政。
将 python 和 python3 链接改回系统默认值,dpkg/apt-get 将重新开始工作。
$ sudo rm /usr/bin/python
$ sudo ln -s /usr/bin/python2.7 /usr/bin/python
$ sudo rm /usr/bin/python3
$ sudo ln -s /usr/bin/python3.6 /usr/bin/python3
答案2
miniconda 的目的是安装一个自包含的 Python 版本。它可以是 Python2 或 Python3,但这个 Python 由 miniconda 管理,并且不是 apt
。所安装的apt
是系统专用的,正如其他人所说,您不应去管它们。
miniconda 安装的那个不在/usr/bin/
。这取决于您安装 miniconda 的位置,但如果您没有 sudo 权限安装它,我猜它应该在~/.conda/
某个地方。
conda activate
或者,您可以使用或激活 miniconda conda activate <environment name>
。然后执行which python
来找到它。如果您需要删除这些 python,您可以删除它们,因为它们不是系统的一部分。(但通常其他软件包需要它,所以我建议您不要管它们。)查看conda remove ...
。