pywhatsapp/yowsup2 не работает под apache/wsgi
Pywhatsapp (оболочка для yowsup2 - API-интерфейс WhatsApp Python) для отправки сообщений из моего приложения Django.
from whatsapp import Client
whatsapp_client.send_message(to, message)
Приведенный выше код отправляет сообщение нормально, когда я использую сервер разработки Django по умолчанию. Однако когда я внедряю код в AWS beanstalk и пытаюсь отправить сообщение, появляются те же ошибки кода. Оба pywhatsapp и yowsup установлены и работают нормально.
Когда я пробую приведенный выше код в оболочке экземпляра eb (python manage shell), он отправляет сообщение просто отлично... просто НЕ через apache / mod_wsgi. Я узнал, что Apache не делает этого, чтобы избежать использования безопасности. Но я понятия не имею, как правильно решить эту проблему. Любая помощь или указатели на документацию будут очень благодарны.
ошибка, которую я получаю от AWS:
[Errno 13] Permission denied: '/home/wsgi'
мой файл wsgi:
import os
from django.core.wsgi import get_wsgi_application
from mezzanine.utils.conf import real_project_name
os.environ.setdefault("DJANGO_SETTINGS_MODULE",
"%s.settings" % real_project_name("vidhaikalam"))
application = get_wsgi_application()
и мой.ebbeanstalk/02_python.config
option_settings:
"aws:elasticbeanstalk:application:environment":
DJANGO_SETTINGS_MODULE: "vidhaikalam.settings"
"PYTHONPATH": "/opt/python/current/app/vidhaikalam:$PYTHONPATH"
DJANGO_SECRET_KEY: "**********"
DJANGO_NEVERCACHE_KEY: "*********"
"aws:elasticbeanstalk:container:python":
WSGIPath: vidhaikalam/wsgi.py
NumProcesses: 3
NumThreads: 20
"aws:elasticbeanstalk:container:python:staticfiles":
"/static/": "static/"
Трассировка назад здесь:
1 ответ
Благодаря указателю Грэма Дамплтона я смог решить эту проблему. Я просто изменил константу Yowsup PATH_STORAGE, как в моем views.py
from yowsup.common import YowConstants
YowConstants.PATH_STORAGE = "/tmp/.yowsup"
Большое спасибо, Грэм Дамплтон!