我正在我的覆盆子pi上运行一个python脚本,最后我要在同一目录中调用第二个python脚本。我使用os.system()
命令调用它,如下面的代码片段所示,但是导致导入错误。我理解这是因为系统将脚本名称解释为shell命令,需要告诉我使用python运行它,使用我第二个脚本开头的shebang行。
#!/usr/bin/env python
但这样做并不能解决错误
以下是第一个脚本的结尾片段:
# Time to Predict E
end3 = time.time()
prediction_time = end3-start3
print ("\nPrediction time: ", prediction_time, "seconds")
i = i+1
print (i)
script = '/home/pi/piNN/exampleScript.py'
os.system('"' + script + '"')
这是我第二个脚本的开头:
'#!usr/bin/env python'
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
#from picamera import PiCamera
import argparse
import sys
import time
import numpy as np
import tensorflow as tf
import PIL.Image as Image
非常感谢任何帮助:)
答案 0 :(得分:0)
您在这里的设置并不理想。
考虑简单地导入您的其他脚本(确保它们位于同一目录中)。导入它将导致在脚本中执行未包含在if __name__ == "__main__":
中的所有可执行python代码。关于这个主题,如果您需要保护某些代码不被执行,请将其放在那里。
答案 1 :(得分:0)
由于您尚未发布运行代码时遇到的实际错误,因此这是我最好的猜测。首先,确保exampleScript.py
可执行:
chmod +x /home/pi/piNN/exampleScript.py
其次,在exampleScript.py
中向shebang添加缺少的前导斜杠,即更改
'#!usr/bin/env python'
到
'#!/usr/bin/env python'
答案 2 :(得分:0)
我有2个python文件a.py和b.py,我设置了b.py的执行权限。
chmod a+x b.py
以下是我的样本:
a.py
#!/usr/bin/python
print 'Script a'
import os
script = './b.py'
os.system('"' + script + '"')
b.py
#!/usr/bin/python
print 'Script b'
执行" python a.py",结果是:
Script a
Script b