Python脚本用./script.py运行报错,python script.py运行正常求助
问题原因与解决方案
这个问题很常见,我来帮你理清楚原因和解决方法:
为什么会报错?
当你直接执行 ./gen_in_data.py 时,系统默认会用当前shell(比如bash)去解析脚本内容,但你的脚本是Python代码,shell根本看不懂def main():这类Python语法,所以才会抛出语法错误。而用 python gen_in_data.py 运行时,你明确指定了用Python解释器来处理脚本,所以能正常执行。
解决步骤
第一步:给脚本添加Shebang行
在你的Python脚本最顶部添加一行特殊注释,告诉系统要用Python解释器来运行这个脚本:#!/usr/bin/env python def main(): print " Generating Initial data" if __name__ == '__main__': main()这里用
#!/usr/bin/env python而不是固定路径#!/usr/bin/python的原因是,它会自动读取你环境变量里配置的Python版本,兼容性更强,避免因为不同机器Python路径不同导致的问题。第二步:给脚本添加执行权限
在终端运行以下命令,赋予脚本可执行的权限:chmod +x gen_in_data.py
验证
现在再执行 ./gen_in_data.py,应该就能正常输出 Generating Initial data 啦!
内容的提问来源于stack exchange,提问作者dharma
相关产品推荐
相关产品推荐

