我们有一个运行django rest框架的ec2实例。现在,我希望能够运行一个crontab来启动一个调用php脚本的python脚本。
test.py
class Command(BaseCommand):
def handle(self, *args, **options):
p = subprocess.Popen(['php', "/opt/python/current/app/my-app/my_test_file.php", name, caption], stdout=subprocess.PIPE)
result = p.communicate()[0]
现在在我的本地机器上我没有任何错误。它工作正常。正如你所看到的,我在那里使用绝对路径。
上传到ec2并运行时出现此错误:
> File "/usr/lib64/python2.7/subprocess.py", line 522, in call > return Popen(*popenargs, **kwargs).wait() > File "/usr/lib64/python2.7/subprocess.py", line 710, in __init__ > errread, errwrite) > File "/usr/lib64/python2.7/subprocess.py", line 1335, in _execute_child > raise child_exception > OSError: [Errno 2] No such file or directory
这与这有什么关系? 是因为它无法找到的php文件?因为我也使用了这种方法:
directory = os.getcwd()
p = subprocess.Popen(['php', directory + "/my_test_file.php", name, caption], stdout=subprocess.PIPE)
这在本地工作但在ec2上再次出现同样的错误!
请帮忙!先感谢您!