为什么尽管我努力运行python3,我的系统仍在运行python2



我在运行从Android存储库下载的脚本时遇到问题。根据相关问题和我自己的测试,我很确定问题在于它是由Python2解释的,当时它是为Python3编写的。

以下是我尝试在自己的脚本中重现这个问题:

#!/usr/bin/env python3
# test.py
import sys
print('hello', file=sys.stderr)

以下是测试步骤:

$ alias python=python3
$ python --version
Python 3.6.9
$ python test.py
hello
$ unalias python
$ python --version
Python 2.7.17
$ python test.py
File "test.py", line 5
print('hello', file=sys.stderr)
^
SyntaxError: invalid syntax

令人困惑的是,虽然这个测试按预期执行,但当我使用repo尝试安装Android开源项目时,尽管运行了alias python=python3,我还是得到了SyntaxError(来自基本上相同的脚本行(。(shebang似乎不会影响测试或主脚本。(

我错过了什么?如何使用正确版本的python3运行此脚本?假设有一个变通方法,我该如何在之后进行清理,以便系统的其他部分在需要时仍然可以访问python2?

alias仅更改直接键入shell的命令的解释。因此repo不受影响,因为它不会在shell中键入python命令。

通常,运行与系统不同的Python配置的最佳方式是使用virtualenv。

最新更新