我在一个django项目中有一个自定义的django管理命令,我想从另一个django项目中调用它。两者都使用virtualenv。我还需要检查命令的输出。
我想调用的命令看起来像这样:
/home/path/to/bin/python /home/path/to/manage.py my-command --input-csv=/tmp/w2qGM1 --input-type=csv
/tmp/w2qGM1
是我已创建的临时csv文件。
我试过
subprocess.call
subprocess.call(CMD, shell=True, env={
'PYTHONPATH': os.pathsep.join(sys.path)})
subprocess.check_output
output = subprocess.check_output(
shlex.split(CMD),
shell=True,
stderr=subprocess.STDOUT,
env={'PYTHONPATH': os.pathsep.join(sys.path)}
)
subprocess.Popen
args = shlex.split(CMD)
output = subprocess.Popen(args).wait()
返回
Unknown command: 'my-command'
Type 'manage.py help' for usage.
我尝试将cd /path/to/project/with/management/command/ && source bin/activate
添加到项目django设置的提取中。
我还应该提到我在PYTHONPATH
中拥有所有正确的路径,并且从命令行以编程方式运行时该命令有效。
两个项目都必须使用djagno 1.7。