我有一個Python腳本(Python 3.6),用於從shell腳本中調用。這個shell腳本在調用Python腳本之前定義了一些函數。在Python代碼中,我想在子進程中使用這些函數。從子進程調用shell腳本中定義的函數
這裏是我想要做的
# Shell script
function func1() {
echo "func1 completed"
}
python /path/to/my_script.py
的Python腳本
# my_script.py
import subprocess
p = subprocess.Popen("func1",
stdout = subprocess.PIPE,
shell = True)
但是,在運行時,我得到了錯誤的例子:/bin/sh: func1: command not found
。
我試過它使用shell = False
,通過env = os.environ
,並與os.system
但我得到類似的錯誤。有沒有辦法做到這一點?
爲每個函數創建一個單獨的腳本並用'Popen'調用這些解耦腳本不是更容易嗎? – BartoszKP