繁体   English   中英

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

[英]Why is my system running python2 despite all my efforts to run python3?

我无法运行从 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 运行此脚本? 并假设有一个解决方法,之后我该如何清理,以便我的系统的 rest 仍然可以在需要时访问 python2?

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

通常从系统运行不同的 Python 配置的最佳方法是使用 virtualenvs。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM