Я пытаюсь запустить скрипт php, который находится на моем сервере, из проекта python, который находится на моей локальной машине.
Я пытался следовать до сих пор
Сторона Python:
# -*- coding: utf-8 -*-
import subprocess
import json
import sys
import os
def php(script_path):
p = subprocess.Popen(['php', script_path], stdout=subprocess.PIPE)
result = p.communicate()[0]
return result
image_dimensions_json = str(php("http://XXX.XXX.XX.XX/logistic_admin/test1.php"))
dic = json.loads(image_dimensions_json)
print str(dic["0"]) + "|" + str(dic["1"])
сторона php:
test1.php
<?php
echo(json_encode(getimagesize($argv[1])));
?>
Но я сталкиваюсь со следующей ошибкой:
Traceback (most recent call last):
File "D:\folder\test.py", line 20, in <module>
image_dimensions_json = str(php("http://XXX.XXX.XX.XX/logistic_admin/test1.php"))
File "D:\folder\test.py", line 16, in php
p = subprocess.Popen(['php', script_path], stdout=subprocess.PIPE)
File "C:\Python27\Lib\subprocess.py", line 711, in __init__
errread, errwrite)
File "C:\Python27\Lib\subprocess.py", line 948, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
Попробуйте использовать urllib
модуль.
Пример:
import urllib
def php(script_path):
urlData = urllib.urlopen(script_path)
return urlData.read()
или вы можете использовать модуль запросов:
import requests
def req(url):
r = requests.get(url)
return r.text
или модуль urllib2:
import urllib2
def req(url):
f = urllib2.urlopen(url)
return f.read()