我在运行从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试图安装时,尽管运行了alias python=python3,我还是得到了SyntaxError (从本质上讲是相同的脚本行)。( shebang似乎不会影响测试或主要脚本。)
我遗漏了什么?如何使用正确版本的python3运行此脚本?并且假设有一个解决办法,我如何清理之后,以便我的系统的其他部分仍然可以访问python2时,它想要吗?
发布于 2021-03-16 19:45:35
alias只更改直接输入到shell中的命令的解释。因此,repo不受影响,因为它不会将python命令键入到shell中。
通常,运行与系统不同的Python配置的最佳方法是使用virtualenvs。
https://stackoverflow.com/questions/66662292
复制相似问题