在我的程序中,我调用命令:
command_two = 'sfit4Layer0.py -bv5 -fs'
subprocess.call(command_two.split(), shell=False)
我正在使用PyCharm,我收到错误消息:
^{pr2}$当遍历我的程序时,它永远无法到达我想要它的程序sfit4Layer0.py,它被困在子进程中,但我不知道为什么。更改shell=True也没有任何帮助-我没有收到这些错误消息,但它不能正确执行我的代码。任何建议都会有帮助。在
我的bash简介:
PATH="~/bin:/usr/bin:${PATH}"
export PATH PYTHONPATH="/Users/nataliekille/Documents/sfit4/pbin/Layer0:/Users/nataliekille/Documents/sfit4/pbin/Layer1:/Users/nataliekille/Documents/sfit4/pbin/ModLib:/Users/nataliekille/Documents/sfit4/SpectralDB"
export PYTHONPATH
PATH=${PATH}:${PYTHONPATH}
export PATH
您错过了an important part of the ^{} documentation 。“如果在命令中传递单个字符串,而不是字符串列表,则shell必须为True(见下文),否则字符串必须简单地命名要执行的程序,而不指定任何参数。”
因此内核是比较的,因为没有名为
'sfit4Layer0.py -bv5 -fs'
的可执行文件。如果将字符串替换为(例如)'sfit4Layer0.py -bv5 -fs'.split()
,或['sfit4Layer0.py', '-bv5', '-fs']
,则应该可以。在相关问题 更多 >
编程相关推荐