我无法在shell脚本中运行python脚本.以下是script.sh文件,其中3个参数被传递给python脚本.
python main.py 1.0 0.1 10
python程序没有读取参数.当在命令行终端中运行同一行时,它运行正常.
<<>>
我刚刚通过在main.py中定义了硬编码的参数并运行不带参数的命令来检查它.它仍然无法正常工作. main.py正在使用一些其他文件,这些文件也位于同一目录中.此外,该脚本也位于同一目录中.
解决方法:
从你粘贴的SyntaxError,听起来你是在错误版本的python下运行脚本,特别是Python 2而不是Python 3(因为SyntaxError可能会抱怨注释,which only exist in Python 3).
如果您阅读了实际获得的错误,您可以看到这与传递参数(问题的标题)完全无关.
正确的解决方案是不通过在前面添加解释器名称来调用脚本,而是让它调用自己的解释器:
./main.py 1.0 0.1 10
代替
python main.py 1.0 0.1 10
如果它被正确编写,脚本将在开头有一个shebang line,指定它需要运行的解释器,这将是python3或类似的东西.
通过让脚本指定自己的解释器,调用脚本不需要知道或关心需要哪个解释器.甚至可以重写脚本以完全使用不同的语言(或者可以用完全不是脚本的已编译二进制文件替换),并且不必修改调用者以便以不同方式调用它.
标签:python,shell
来源: https://codeday.me/bug/20190813/1648679.html