我怎样才能在 ubuntu 18.04 中对所有内容使用一个特定版本的 Python?

我怎样才能在 ubuntu 18.04 中对所有内容使用一个特定版本的 Python?

我在使用 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 并将它们安装到同一位置后aptdpkg系统又开始正常运行。然而,一切并不完全顺利 - 我的一些使用 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 ...

相关内容