以下代码允许我动态识别并加载自定义模块(如果它不位于 sys.path 变量的任何目录中)
import sys
sys.path.append("/lib")
但是,这给了我 OSError
import subprocess
x = subprocess.Popen(["export", "PYTHONPATH=/lib"], stdout=subprocess.PIPE)
不仅如此,即使是简单的 Linux/Unix 变量声明设置也会在 subprocess.Popen() 中失败
import subprocess
x = subprocess.Popen("x=y", stdout=subprocess.PIPE)
我想检查子进程,因为我尝试通过 os.system()、os.popen() 等设置 PYTHONPATH,但该变量未设置(可能是在子进程 shell 中设置的)
最佳答案
试试这个:
>>> subprocess.call(["export foo=bar && echo foo=$foo"], shell=True)
foo=bar
0
>>>
关于使用 subprocess.Popen() 在 python 脚本中设置 PYTHONPATH 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41198925/