0

Pywhatsapp(yowsup2 的包装器 - 一个 whatsapp python api)从我的 Django 应用程序发送消息。

from whatsapp import Client
whatsapp_client.send_message(to, message)

当我使用 Django 的默认开发服务器时,上面的代码可以很好地发送消息。但是,当我将代码部署到 AWS beanstalk 并尝试发送消息时,出现相同的代码错误。pywhatsapp 和 yowsup 都已安装并且工作正常。

当我在 eb 实例的 shell(python 管理 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/"

追溯在这里:

http://dpaste.com/0DX914S

4

1 回答 1

0

感谢 Graham Dumpleton 的指导,我能够解决这个问题。我只是在views.py中更改了Yowsup的PATH_STORAGE常量

from yowsup.common import YowConstants
YowConstants.PATH_STORAGE = "/tmp/.yowsup"

非常感谢,格雷厄姆邓普顿!

于 2016-08-16T08:48:12.410 回答