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

如何使用 python 而不是 python3 运行脚本?
which python
/home/tanvir/.pyenv/shims/python
which python3
/home/tanvir/.pyenv/shims/python3

我想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

答案1

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

答案2

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

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

  1. 使用以下命令列出可用的 Python 版本
    pyenv versions
    
  2. 然后使用以下命令更改默认的 Python 版本
    pyenv global 3.6.8
    
    3.6.8根据您在第一步中找到的输出 进行调整。

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

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

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

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

答案3

看起来好像你正在使用pyenv其设计目的是选择要使用的 Python 版本。该页面上的文档包含有关更改选择的说明。一种方法是运行:($ pyenv global 3.9.0根据您安装的 Python 版本进行适当更改。pyenv versions将向您展示)

/home/tanvir/.pyenv/shims/python两者都不/home/tanvir/.pyenv/shims/python3是真正的 Python 可执行文件,而是根据 pyenv 设置传递到已安装的 Python 版本之一的垫片。

目前尚不清楚您想在什么上下文中使用 python3 作为默认值:

  • 为您作为用户提供全球范围的服务
  • 在单个 shell 会话中
  • 面向全球所有用户
  • 对于单个项目

每种方法都有不同的方法和工具,例如,如果是单个项目,那么虚拟环境pyenv-virtualenv) 可能是最好的工具。对于单个 shell 会话,运行$ alias python=python3可能是最佳选择。

答案4

还有另一种方法开始受到欢迎,即使用#!/usr/bin/env python3(或等效于 python2)。通过使用这种变体,它将首先选择路径中匹配的 python 版本,但这允许您拥有不同的虚拟环境,而无需对系统安装的 python 路径进行硬编码。

然后您只需运行path/to/script它就会为您加载预期的 python 版本,而无需在命令行中指定它。

相关内容