CentOS7中Python3.6脚本版本显示异常,输出为Python2.7的问题
为什么指定Python3.6的脚本运行后显示Python2.7的版本?
我来帮你拆解下问题所在,主要有两个核心原因,对应解决办法也很明确:
1. Shebang行的解释器名称写错了
你脚本第一行写的#!/usr/bin/env python36有问题——CentOS7通过EPEL仓库安装的Python3.6,它的可执行文件名称是python3.6(带小数点),而不是python36。当env找不到python36这个命令时,就会自动 fallback 到系统默认的Python解释器,也就是CentOS7自带的Python2.7.5,这就是为什么输出的是2.7的版本信息。
修正办法:
把shebang行改成以下两种方式之一:
- 使用带小数点的正确名称:
#!/usr/bin/env python3.6 - 或者直接写Python3.6的绝对路径(可以用
which python3.6命令查询具体路径,通常是/usr/bin/python3.6):#!/usr/bin/python3.6
2. IDE忽略了shebang,用了默认的Python解释器
很多IDE(比如PyCharm、VS Code)默认会使用系统自带的Python版本,或者你之前配置的默认解释器,并不会严格遵循脚本里的shebang行。即使你改对了shebang,IDE还是可能用Python2.7来运行脚本。
修正办法:
- 检查IDE的解释器配置:
- 如果是PyCharm:打开
File > Settings > Project: [你的项目名] > Python Interpreter,在下拉列表里选择你安装的Python3.6版本,然后应用设置。 - 如果是VS Code:点击右下角的解释器版本号,在弹出的列表里选择Python3.6的选项,或者按
Ctrl+Shift+P输入"Python: Select Interpreter"来切换。
- 如果是PyCharm:打开
- 先在终端验证脚本:在终端里直接运行
python3.6 你的脚本名.py,如果能输出正确的3.6版本信息,那就说明脚本本身没问题,完全是IDE的配置问题。
内容的提问来源于stack exchange,提问作者silent-mobius
相关产品推荐
相关产品推荐

