【发布时间】:2020-02-13 09:30:12
【问题描述】:
想知道在终端中使用alias更改默认python版本对后续在脚本中调用python是否有积极影响?
比如我用
$ alias python=python36
$ ./run_program
现在假设 run_program 是一个调用多个嵌套脚本的脚本,其中的命令是 python foo.py。他们会执行python36 还是python2?
或者alias 只影响当前 shell 中的直接 python 命令?
【问题讨论】:
-
子shell中没有别名,最好使用函数
-
那么,系统范围的解决方案是什么?
-
可能只是搜索 python,
whereis python。并将其替换为whereis python3返回的任何内容。顺便说一句,这是一个非常糟糕的想法,但它应该可以解决问题。像mv /usr/bin/python3 /usr/bin/python这样的东西,如果在此之后系统没有被丢弃,我会感到惊讶。您可能应该考虑使用虚拟环境而不是弄乱系统的 python 安装。 -
@mahmood:如果您想在系统范围内将
python2覆盖为python36,请使用:python() { python36 "$@"; }; export -f python