在 Ubuntu 18.04 上安装 Python 3.9.6 后,我无法运行 sudo apt

在 Ubuntu 18.04 上安装 Python 3.9.6 后,我无法运行 sudo apt

在我将 Python 3.9.6 安装到我的系统上之前,我并不知道某些软件包已经安装了 Python 3.6。

我按照以下步骤操作:https://phoenixnap.com/kb/how-to-install-python-3-ubuntu#ftoc-heading-7

  1. sudo apt update
    
  2. sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
    
  3. cd /tmp
    
  4. wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz
    
  5. tar -xf Python-3.9.6.tgz
    
  6. cd python-3.9.6
    
  7. ./configure --enable-optimizations
    
  8. (覆盖默认 Python 安装)

    “要在现有 Python 上安装 Python 3.9.6,请输入以下内容”:

    sudo make install
    

经过这些步骤,我发现我有3个版本的python:

$ python -V
Python 3.6.9
$ python2 -V
Python 2.7.17
$ python3 -V
Python 3.9.6

然后我跑了:

sudo apt update

终端返回:

File "/usr/local/bin/apt", line 6
    print "apt"
              ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("apt")?

我可以运行其他命令,如sudo apt-get...等等。

有人能告诉我哪里出了问题吗?

编辑:感谢 Joshua Johns、steeldriver 和 vanadium 的帮助。我做了以下验证:

$ ls -l /usr/bin/python
/usr/bin/python -> /etc/alternatives/python
$ ls -l /etc/alternatives/python
/etc/alternatives/python -> /usr/bin/python3
$ ls -l /usr/bin/python3
/usr/bin/python3 -> python3.6
$ ls -l /usr/bin/python2
/usr/bin/python2 -> python2.7
$ which python3 /usr/local/bin/python3
$ ls -l /usr/local/bin/python3
/usr/local/bin/python3 -> python3.9

答案1

补充一下@vanadium,每当你想在你的机器上安装最新的python时,一定要检查python和Ubuntu的发布日期。最好将Ubuntu升级到最新版本而不会破坏所有内容。例如,python 3.9于2020年10月5日发布,而Ubuntu 18.04于2018年7月26日发布。现在你必须等待Ubuntu 22.04,它很可能默认安装python 3.9。希望你现在明白了。

答案2

我使用 deadsnakes PPA 在 Ubuntu 18.04 上安全地安装了最新的 Python(20.04 安装的是 3.8,但其官方存储库中有 3.9),而不会覆盖现有的系统 Python。有关详细信息,请参阅此要点:https://gist.github.com/plembo/6bc141a150cff0369574ce0b0a92f5e7。请注意,我的工作流程不需要最新的 python 系统范围,因此在使用 pip 安装其他库时我总是添加“--user”标志。

相关内容