更改脚本所引用的 Python 版本

更改脚本所引用的 Python 版本

我已经下载了脚本“install_esoreflex”(ftp://ftp.eso.org/pub/dfs/reflex/install_esoreflex),然后执行以下命令:

chmod u+x install_esoreflex

./install_esoreflex 

我收到以下警告

WARNING: The following Python version is installed in your system Python 3.7.0
WARNING: Some of the available workflows use functionality
WARNING: only available in version Python 2.6.0 or greater
WARNING: and will not work properly with the installed version.
WARNING: Additionally, python 3.x is not yet supported.

尽管我同时拥有 Python 3.7.0 和 2.7。Python 2 安装在 /usr/bin/python2 中,Python 3 安装在 /home/USER/miniconda3/bin/python3 中。我怎样才能让脚本“知道”我有 python 2?

答案1

从 Ubuntu 18.04 版本开始,python 3 是默认的 python 版本(关联)。这意味着符号/usr/bin/python链接到了/usr/bin/python3。您可以通过运行来检查python —version

要在脚本中默认使用 Python 2(正如安装脚本所要求的那样),您需要安装 Python 2 版本 ( apt-get install python2)。并告诉 Ubuntu 使用该 Python 版本。

这是不是建议更改/usr/bin/python符号链接,因为它是发行版维护配置的一部分。相反,您应该使用命令alias关联): alias python=python2。这(本地)指向pythonpython2可在 中找到/usr/bin。您可以在运行安装脚本之前在终端中使用此命令一次。要更永久地更改它,请将其添加到.bash_profile

答案2

查看脚本是否有“shebang”(第一行带有#!...),并将python其中的引用更改为指向,python2而不仅仅是python

编辑:

好的,所以整个脚本假设您的默认设置python是 Python v2。您也许可以使用别名 ( alias python=python2) 成功运行安装,如上面的评论所示。

但是,整个包很可能需要pythonpython v2,因此每次运行包中的某些内容时,您都必须执行相同的操作。但是,如果您设置永久别名,这可能会与系统中需要 python=python3 的其他内容发生冲突。

因此,在为 python v2 设置别名后,您可能必须使用外观脚本来启动该包的各个部分。

答案3

这可以在一行中解决您的问题,而无需更改系统的 python 符号链接,这可能会导致其他问题。

wget ftp://ftp.eso.org/pub/dfs/reflex/install_esoreflex  -O - | sed 's/command -v python/command -v python2/g' | sh

相关内容