Geany中指定Python3 Shebang仍使用Python2的问题求助
嘿,我来帮你搞定这个问题!这种情况我在Geany里碰过好多次,核心问题大概率是Geany的默认运行配置没跟上你的shebang设置,咱们一步步来排查解决:
问题原因拆解
虽然你已经在代码里加了Python3的shebang,但Geany默认情况下并不会自动优先遵循shebang——它有自己预设的运行命令,这是最常见的触发原因。当然也可以快速确认下shebang的路径是否绝对正确,避免踩小坑。
具体解决办法
方法1:直接修改Geany的Python运行命令(最省心)
这是最快让Geany默认用Python3的方式:
- 打开Geany,点击顶部菜单栏的 Build -> Set Build Commands
- 在弹出的窗口左侧找到 Python 分类
- 看右侧的 Execute 命令,默认大概率是
python "%f",把它改成python3 "%f",或者直接用你终端查到的Python3完整路径(比如/usr/bin/python3 "%f") - 点击 OK 保存,重新运行程序就能看到效果了
方法2:确认shebang行绝对正确
虽然你说用了完整路径,但还是可以快速验证下:
- 打开终端输入
which python3,得到的就是Python3的正确完整路径(比如/usr/bin/python3) - 把代码第一行的shebang改成
#!/usr/bin/python3(替换成你查到的路径) - 重点注意:这个shebang必须是文件的第一行,前面不能有任何空行、注释或者空格
方法3:让Geany完全尊重shebang(灵活适配多版本)
如果你想让Geany直接通过shebang来选择解释器,不用每次改配置,可以这样设置:
- 同样打开 Build -> Set Build Commands
- 把Python的Execute命令改成下面其中一种:
bash "%f":让bash来执行脚本,bash会自动识别shebang并调用对应解释器chmod +x "%f" && "%f":先给脚本添加执行权限,然后直接运行脚本,系统会根据shebang选对应解释器
- 这种方法的好处是,以后你切换脚本的Python版本,只要改shebang就行,不用再动Geany的配置
快速验证小技巧
你可以在代码里加一行测试代码,直接看当前用的是哪个解释器:
import sys print(sys.executable)
运行后会打印出解释器的完整路径,一目了然问题是否解决。
内容的提问来源于stack exchange,提问作者Torsten_K
相关产品推荐
相关产品推荐

