【问题标题】:Installed Python 3.8 on Ubuntu, but it's not the default在 Ubuntu 上安装了 Python 3.8,但不是默认的
【发布时间】:2019-12-10 17:34:51
【问题描述】:

我已经在我的 Ubuntu 16.04 上下载了 Python 3.8,如果我写 python3.8 它表明它存在,但是当我写 python --version 时,我得到的是我的旧 Python 版本,它是 3.5

【问题讨论】:

    标签: python python-3.x ubuntu


    【解决方案1】:

    设置别名:

    alias python=python3.8
    

    然后在 Bash 中运行 python 将运行 python3.8

    要使更改永久生效,请将别名行放入 ~/.bashrc。打开 Bash 后生效。


    符号链接

    为什么不将/usr/bin/python 符号链接到python3.8

    Ubuntu 遵循PEP 394,它说python 命令应该指向 Python 2。但是别名有效,因为它只影响你的 shell。它甚至不会影响您编写的脚本,这意味着如果您希望脚本在 Python 3.8 中运行,则必须在 shebang 中显式编写它,例如#!/usr/bin/env python3.8 而不是 #!/usr/bin/env python

    为什么不至少将/usr/bin/python3 符号链接到python3.8

    由于存在特定于版本的库,因此有些事情会中断。例如 _gi 不适用于 Ubuntu 16.04 上的 Python 3.8,因此 Gnome 终端将无法打开。有关示例,请参阅 Ask Ubuntu 上的 Gnome terminal will not start


    更多详情

    【讨论】:

    • Ubuntu 还附带了一些工具,因此您可以快速解决此问题:sudo apt-get install python-is-python3
    • 和:alias pip='pip3.8'
    • @forzagreen 实际上,如果您需要使用 Pip,我可能会推荐一个 virtualenv,因为在 Ubuntu 中,它不一定与 Python 一起安装,而且根据我的经验,它非常挑剔。
    • 另一个说明:别名不与python虚拟环境一起使用。如果激活 venv,“python”命令将被解释为别名,而不是 venv 的本地 python。 (检查which python
    【解决方案2】:

    一切都取决于你如何安装python3.8。 许多方法不会为您更新默认符号链接。

    如果您执行以下操作: sudo ln -s /usr/bin/python3.8 /usr/local/bin/python 然后运行 ​​python --version 应该可以解决您的问题。

    如果您的 python3.8 二进制文件不在 /usr/bin/python3.8 中,请相应地更新您的符号链接路径。

    请记住,某些依赖于较低 python 版本的特定功能的应用程序可能无法正常运行。但是使用 Python3 的可能性很低。

    【讨论】:

    • 我不会亲自使用它,因为 Ubuntu 遵循PEP 394,它说python 命令应该指向 Python 2。但是别名可以工作。我会发布我自己的答案。
    • @ArtyomKovalyov 我用这种方法毁了我的发行版!
    • 你不能像这样毁掉一个发行版。反转您的符号链接并保持良好状态。
    【解决方案3】:

    正确的方法是 sudo apt install python-is-python3 - 它有效地进行符号链接,但它也与未来的更新保持同步;因此,如果您的 ubuntu 发行版改用 Python 3.9,手动符号链接将不再起作用,但该软件包会确保它仍然有效。

    感谢https://askubuntu.com/a/1272899/1055134

    【讨论】:

      猜你喜欢
      • 2020-11-15
      • 2020-11-22
      • 1970-01-01
      • 2019-12-31
      • 1970-01-01
      • 2021-01-28
      • 2023-02-07
      • 1970-01-01
      • 2014-02-20
      相关资源
      最近更新 更多