从现有脚本调用脚本的 Shebang 命令 - Python

Shebang command to call script from existing script - Python

我正在 运行 在我的 raspberry 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

非常感谢任何帮助:)

你这里的设置不理想。

考虑简单地导入您的其他脚本(确保它们位于同一目录中)。导入它将导致执行脚本内所有未包含在 if __name__ == "__main__": 中的可执行 python 代码。在讨论该主题时,如果您需要保护某些代码不被执行,请将其放在那里。

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

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

其次,在 exampleScript.py 中的 shebang 添加一个缺失的前导斜杠,即更改

'#!usr/bin/env python'

'#!/usr/bin/env python'

我有 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