У нас есть экземпляр ec2, работающий с каркасом отдыха django. Теперь я хочу запустить crontab, который запускает скрипт на python, который вызывает скрипт php.
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 выдало ту же ошибку!
Пожалуйста помоги! Заранее спасибо!
Задача ещё не решена.
Других решений пока нет …