从现有脚本调用脚本的 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
我正在 运行 在我的 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