自定义Unix Shebang解释器无法执行Python脚本问题求助
解决自定义Python解释器脚本仅进入Shell不执行脚本的问题
嗨,这个问题的核心其实很容易发现——你的自定义脚本没把要执行的Python脚本路径传递给真正的Python解释器!
你当前的/home/name/mypython脚本只是调用了/path/A/B/python,但没有把Shell传递给它的参数(也就是你要执行的那个Python文件路径)传过去,所以Python启动后默认进入交互Shell,根本不知道要执行哪个脚本。
解决步骤如下:
修改自定义解释器脚本,把所有接收到的参数原封不动传递给真正的Python:
#!/bin/bash source something /path/A/B/python "$@"这里的
"$@"是Shell里的特殊变量,它会把当前脚本收到的所有命令行参数(包括你的Python脚本路径)完整传递给后面的Python解释器,这样Python就知道要执行哪个文件了。确保自定义脚本有可执行权限(如果还没设置的话):
chmod +x /home/name/mypython你的Python脚本的Shebang不需要改动,保持原来的就行:
#!/home/name/mypython # 这里写你的Python代码 print("终于能正常执行啦!")
这样修改后,当你直接运行你的Python脚本(比如./your_script.py),自定义脚本会先加载需要的环境变量,再把目标脚本交给真正的Python解释器执行,就不会再只进入交互Shell啦。
内容的提问来源于stack exchange,提问作者CuriousMind
相关产品推荐
相关产品推荐

