在谷歌应用引擎上导入Twilio

时间:2015-05-27 09:39:17

标签: python google-app-engine twilio

我见过其他类似的问题,但没有一个解决方案适合我。我想让Twilio与Google App Engine合作。我正在使用python API,似乎无法让它工作。我尝试了一些策略:

  1. 使用了pip install twilio
  2. 将twilio文件直接下载到我的根目录
  3. sym根据一些教程链接了所需的文件
  4. 似乎什么都没有用。当我写“import twilio.twiml”这一行时,谷歌应用程序引擎崩溃并说“错误:服务器错误:

    导入Twilio并加载到Google应用引擎服务器的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

来自the docs

  

..您需要将Twilio的Python库添加到您的应用程序中。   这涉及安装一些包管理工具和最新的   Twilio Python模块的版本,然后符号链接库和   它依赖于您的Google App Engine应用程序:

     
      
  • cd到存储应用程序的目录,如果您按照Getting获取,这将是您创建的helloworld目录   开始指南。

  •   
  • 安装setuptools(安装说明)。

  •   
  • 使用setuptools安装pip:

    $ sudo easy_install pip
    
  •   
  • 使用pip安装Twilio的Python库和依赖项:

    $ pip install twilio
    
  •   
  • 找到您的site-packages目录。这是pip安装Twilio帮助程序库的地方:

    $ python -c "import site; print(site.getsitepackages()[0])"
    
  •   
  • 使用该命令的输出作为下面{SITE_PACKAGES}的值,将Twilio Python模块符号链接到您的应用程序目录。   首先,链接Twilio库:

    $ ln -s {SITE_PACKAGES}/twilio .
    
  •   
  • 然后链接Twilio Python模块的依赖项:

    $ ln -s {SITE_PACKAGES}/httplib2 .
    $ ln -s {SITE_PACKAGES}/six.py .
    
  •   
     

您现在已将Twilio库安装到Google App Engine中   项目

然后您可以导入twilio,例如

from twilio import twiml

答案 1 :(得分:0)

你应该使用vendoring。使用python的Google App Engine官方文档还建议使用virtualenv并将第三方库安装到项目根目录的子目录中:

安装virtualenv:

$ sudo pip install virtualenv

在应用程序目录之外的某个位置创建虚拟环境。 (这些文件不应与您的应用程序代码一起上传。或者您可以在项目目录中创建它,但必须在app.yaml中添加规则才能跳过它。)

创建虚拟环境:

$ virtualenv <env_name>

$ source /path/to/<env_name>/bin/activate
$ cd <your_appengine_project_directory>
$ ln -s {virtualenv}/lib/python2.7/site-packages lib

这样,virtualenv中的pip安装也会自动进入lib目录。

$ pip install twilio

docs然后说项目根目录中的appengine_config.py文件包含以下内容:

from google.appengine.ext import vendor
# Add any libraries installed in the "lib" folder.
vendor.add('lib')

这样,virtualenv中的pip安装也会自动进入lib目录。

因此,你应该import twilio.twiml并从那里接受它。

答案 2 :(得分:0)

感谢您的投入。我已经尝试了所有这些东西。当我在本地主机上运行应用程序时,我在控制台中看到我遇到的错误是'pytz'

事实证明,Twilio要求Pytz依赖项位于Google App Engine的根目录中。他们还没有更新文档。

希望将来可以帮助任何人。