Так что мой скрипт на python3 работает, когда я запускаю его из терминала, но не когда я вызываю его из скрипта php (просто используя exec, и я буквально набираю те же самые вещи в команде терминала).
Скрипт работает, но некоторые вещи делают его ошибкой (я не знаю, как получить сообщения об ошибках, только код выхода — 0 или 1). Во-первых, конкатенация строк (с использованием string1 + string2) не работала, поэтому мне пришлось использовать% заполнителей.
И проблема, которую я сейчас пытаюсь решить — это URL-запрос. Я пытался использовать
requests.get(url)
а также
req = urllib.request.Request(url)
with urllib.request.urlopen(req)
Оба они работают из терминала, и скрипт php будет работать / не будет ошибки, когда они закомментированы. Кто-нибудь знает, почему это происходит и как это исправить?
редактировать
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "./scripts/getSBNews.py", line 49, in getSBNews
response = urllib.request.urlopen(req)
File "/usr/lib/python3.4/urllib/request.py", line 161, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.4/urllib/request.py", line 469, in open
response = meth(req, response)
File "/usr/lib/python3.4/urllib/request.py", line 579, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python3.4/urllib/request.py", line 507, in error
return self._call_chain(*args)
File "/usr/lib/python3.4/urllib/request.py", line 441, in _call_chain
result = func(*args)
File "/usr/lib/python3.4/urllib/request.py", line 587, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request
Задача ещё не решена.
Других решений пока нет …