我有两个不同的Django应用程序,都运行在同一个Linux服务器(ubuntu18.04 LTS)上,使用Python 3.6 64位。
这个 应用程序A 在Django1.11和 虚拟病毒A .
这个 附录B 在Django 2.1和 .
在 附录B 我需要调用一个函数来迁移表 应用程序A
/path/to/envA/python /path/to/appA/manage.py migrate
但是当我尝试运行相同的命令时 App B内部 子流程 我有一个 错误,我怀疑这是因为不同的环境。
这是我在应用程序B中的代码:
subprocess.Popen(["/path/to/envA/python", "/path/to/appA/manage.py", "migrate"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
我还试着用 shell=True
shell=True
我通过考试解决了这个问题 env 变量输入 Popen 功能:
env
Popen
subprocess.Popen(["/path/to/envA/python", "/path/to/appA/manage.py", "migrate"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env={"PATH": "/path/to/envA/python"})