2017-08-10 78 views
0

我在我的树莓派上运行一个python脚本,在其结尾处我想调用同一目录中的第二个python脚本。我使用os.system()命令调用它,如下面的代码片段所示,但会导入错误。我理解这是因为系统将脚本名称解释为shell命令,并且需要被告知使用python运行它,在我的第二个脚本的开始处使用shebang行。Shebang命令从现有脚本调用脚本 - Python

#!/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

什么是a您在运行代码时获得的实用导入错误? – s3rvac

回答

0

由于您没有发布运行代码时得到的实际错误,因此这是我的最佳猜测。首先,确保exampleScript.py可执行:

chmod +x /home/pi/piNN/exampleScript.py 

二,添加缺少的斜线的家当在exampleScript.py,即改变

'#!usr/bin/env python' 

'#!/usr/bin/env python' 
0

你在这里的设置并不理想。

考虑简单地导入你的其他脚本(确保它们在同一个目录中)。导入它将导致执行脚本中未包含在if __name__ == "__main__":中的所有可执行Python代码。关于这个话题,如果你需要保护一些代码不被执行,请将它放在那里。

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' 

执行 “蟒蛇a.py”,结果是:

Script a 
Script b