У меня есть следующий python скрипт test.py:
import subprocess
subprocess.call(["php", "C:/Documents and Settings/user/My Documents/Downloads/load_data.php"])
идея состоит в том, чтобы запустить другой скрипт php, в котором я превращаю LOAD DATA INFILE в таблицу MySQL, но он генерирует следующую ошибку:
Traceback <most recent call last>:
File "test.py", line 3, in <module>
subprocess.call<["php","load_data.php"]>
File "C:\Python34\lib\subprocess.py", line 537, in call
with Popen<*popenargs, **kwargs> as p:
File "C:\Python34\lib\subprocess.py" line 859, in __init__
restore_signals, start_new_session>
File "C:\Python34\lib\subprocess.py", line 1114, in _execute_child startupinfo>
FileNotFoundError: [WinError 2] The system cannot find the file specified
Если я запускаю прямой сценарий load_data.php в веб-браузере, он работает без каких-либо проблем, поэтому мне кажется, что проблема в python, стоит упомянуть, что я делал это правильно раньше, но с python 3.6, некоторые идеи, если мне это нужно настроить что-нибудь или добавить библиотеку.
У меня php5.3, apache 2.2.21, mysql5.5.20, python3.4, я пытался поставить абсолютный путь к скрипту PHP, но он такой же
С Уважением!
все тот же :/
И к исполняемому файлу тоже. IIRC subprocess() не вызывает оболочку, а напрямую вызывает исполняемый файл. Поэтому, вероятно, он не ищет в PATH соответствующие исполняемые файлы.
@Sammitch subprocess.call (["C: /wamp/bin/php/php5.3.10", "C: / Documents and Settings / user / My Documents / Downloads / load_ctb.php"])?
Поскольку он работает через Интернет, я думаю, что лучше использовать curl yourdomain/yourphppath.php.






Для запуска PHP с Python необходимо добавить полный путь к исполнителю PHP и полный путь к исполняемому файлу. Пример :
import subprocess
subprocess.call(["C:\\wamp64\\bin\\php\\php5.3\\php.exe", "C:\\Documents and Settings\\user\\My Documents\\Downloads\\load_data.php"])
Не забывайте избегать анти-слэшей, иначе подпроцесс не будет работать и видимой ошибки не будет.
Включите полный путь к файлу PHP