在我将 Python 3.9.6 安装到我的系统上之前,我并不知道某些软件包已经安装了 Python 3.6。
我按照以下步骤操作:https://phoenixnap.com/kb/how-to-install-python-3-ubuntu#ftoc-heading-7
-
sudo apt update
-
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
-
cd /tmp
-
wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz
-
tar -xf Python-3.9.6.tgz
-
cd python-3.9.6
-
./configure --enable-optimizations
(覆盖默认 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”标志。