【发布时间】:2018-03-23 06:50:24
【问题描述】:
我有一个 Python 脚本 (Python 3.6),旨在从 shell 脚本中调用。这个 shell 脚本在调用 Python 脚本之前定义了一些函数。在 Python 代码中,我想在子进程中使用这些函数。
这是我正在尝试做的一个示例
# 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调用这些解耦的脚本不是更容易吗?
标签: python python-3.x shell