Python的subprocess.Popen()及源码

标签 python bash

<分区>

我尝试调试的第三方 Python 2.5 脚本让我陷入困境。脚本的相关部分是:

       proc = subprocess.Popen(
               "ls && source houdini_setup",
               shell = True,
               executable = "/bin/bash",
               )

有一个守护进程监听5001端口并运行上面的脚本。当脚本运行时,它失败并出现以下错误:

_cygwin.py
houdini_setup
... (more files) ...
/bin/sh: line 0: source: houdini_setup: file not found

houdini_setup 文件非常多,如 ls 所示,事实上,如果我在上面的脚本中将“source”更改为“cat”,脚本会按预期打印 houdini_setup 的内容。此外,在真正的 bash shell 中运行上述命令也可以毫无怨言地获取文件。

有人知道这里发生了什么吗?

最佳答案

如果您未指定目录,

source 使用 $PATH 查找您传递给它的内容。尝试 source ./houdini_setup

关于Python的subprocess.Popen()及源码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2038575/

相关文章:

python - 计算df中 '1'的数量

Python通过大于或等于每个子组中值的列值查找数据框中的记录

linux - bash脚本的格式

bash - 将可变数量的 bash 命令行参数传递给 MATLAB 函数

python - 最接近 R nlminb 的 Python scipy 求解器模拟?

python - MongoDB 使用 $push 更新匹配条件的数组元素

bash - 非重复行数 - 唯一计数

linux - || 是什么意思在 Bash 脚本中测试条件后

bash - 如果其子 shell 错误,则导致 bash 语句出错

python - 在 Python 中测试引用相等性