运行shell脚本时更改python版本

时间:2019-05-10 16:48:01

标签: python-3.x python-2.7 shell

我有一个shell脚本,可以运行以预测raspberrypi上具有python 2.7和3.5版本的某些内容。为了支持音频功能,我将python 3.5作为默认设置。当我运行shell脚本时,它的版本是2.7,并抛出错误。The error is shown in this link

3 个答案:

答案 0 :(得分:0)

我建议您使用adding an alias to the root bashrc file,因为您似乎以root用户的身份称呼它。

文件alias python=python3.5底部的~root/.bashrc可能会影响您的搜索结果,尽管我敢肯定还有更永久的解决方案。

答案 1 :(得分:0)

根据您的问题的措词还不清楚,您如何设置脚本。但是,如果要在Shell脚本中调用python,则始终可以指定python3或python2,而不仅仅是调用python(这指向系统的默认值)。看起来像这样:

$ python3 python_script.py

如果您是直接通过命令行(例如,外壳程序中./python_script.py的某些行)中包含python代码的脚本来调用脚本,则还可以像这样设置脚本头的格式,以强制执行特定版本的python:

#!/usr/bin/env python3
python source code here

答案 2 :(得分:0)

您可以在脚本顶部显式选择现有python的版本。

例如,我有一个脚本,该脚本在2.7.12 python和3.5.2 python中执行脚本。命名为:“不同的py versioned.sh”

其代码:

#! /bin/bash
./'py in default.py'
./'py in 3.5.py'

“ py in 3.5.py”的代码:

#!/usr/bin/python3.5
import sys
print("Python version")
print (sys.version)

“ py in default.py”的代码:

#!/usr/bin/python
import sys
print("Python version")
print (sys.version)

然后执行输出:./'不同的py versioned.sh'

Python version
2.7.12 (default, Oct  8 2019, 14:14:10) 
[GCC 5.4.0 20160609]
Python version
3.5.2 (default, Oct  8 2019, 13:06:37) 
[GCC 5.4.0 20160609]

显示每段代码均以其单独的py版本执行。