如何使用 python 而不是 python3 运行脚本?

Tan*_*med 5 python 20.04

which python
/home/tanvir/.pyenv/shims/python
Run Code Online (Sandbox Code Playgroud)
which python3
/home/tanvir/.pyenv/shims/python3
Run Code Online (Sandbox Code Playgroud)

我想python指出/home/tanvir/.pyenv/shims/python3的是,一旦我运行python path/to/script它就会运行python3 path/to/script

Distributor ID: Ubuntu
Description:    Ubuntu 20.04.4 LTS
Release:    20.04
Codename:   focal
Run Code Online (Sandbox Code Playgroud)

cjs*_*cjs 8

我建议你不要这样做。Python 2 和 3 存在一些不兼容性,长期以来,Python 脚本顶部的 hashbang 的约定是选择 2 with#!/usr/bin/env python和 3 with #!/usr/bin/env python3。以前的约定开始消失,但您可能仍然会遇到专门尝试选择 Python 2 的旧脚本#!/usr/bin/env python,而您运行 Python 3 的配置python将破坏它们。

  • 没有理由不能让 python 指向 python3 而不是 python2。Ubuntu 甚至提供了一个包来实现 python 到版本 2 或 3 的符号链接。当然,Python 2 脚本在 python 3 上确实会崩溃。 (5认同)
  • @vanadium操作系统中没有任何东西可以阻止您将任何内容链接到您喜欢的任何其他内容,正确的。这与我的答案无关,这不是关于你可以这样做,而是你应该这样做。 (3认同)

van*_*ium 6

尽管您没有明确告知,但您已经设置并正在使用pyenv. 这是一个编写的工具bash,允许根据每个用户管理不同的 python 版本。

要更改默认的 python 版本,您需要使用该工具。目前,您的python版本可能仍设置为Ubuntu系统安装的python版本。

  1. 使用命令列出可用的 python 版本
    pyenv versions
    
    Run Code Online (Sandbox Code Playgroud)
  2. 然后使用如下命令更改默认的 python 版本
    pyenv global 3.6.8
    
    Run Code Online (Sandbox Code Playgroud)3.6.8根据您在第一步中找到的输出 进行调整。

除了为您的用户设置全局默认Python版本之外,您还可以为不同的项目设置不同的默认Python版本。通知自己了解有关该工具的更多信息pyenv

  • 当心,which python会继续指向/home/tanvir/.pyenv/shims/python。这是因为pyenv工作方式。该可执行文件是一个“shims”,一个简短的 bash 脚本,它将您的python命令转换为对配置的默认 python 版本的调用。

  • 如果步骤 1 没有显示除 之外的任何 python 版本system,您将需要使用 来安装一些 python 版本pyenv

对于不使用 的用户pyenv,Ubuntu 提供了软件包来安装指向所需 python 版本的符号链接,即python-is-python2python-is-python3。在最新的 Ubuntu 版本上,python2默认情况下不安装,并且只有后一个软件包可用。