将sqlalchemy库添加到pycharm中的google app引擎

时间:2014-02-17 10:16:36

标签: python google-app-engine sqlalchemy google-cloud-datastore pycharm

我对gae中的sqlalchemy有以下问题。我正在使用 Pycharm 中集成的 google app engine sdk 。一切正常,除了 sqlalchemy的整合。如果我使用Python解释器调试它,数据库本身工作正常。但是,当我试图与谷歌应用程序引擎一起运行时,我遇到了sqlalchemy库的导入问题。

我已经尝试用virtualenv来解决它,但它也没有用。

这是我的输出日志:

  

连接到pydev调试器(build 131.618)

     

警告2014-02-17 10:58:22,887 api_server.py:331]无法初始化图像API;你很可能错过了Python“PIL”模块。

     

警告2014-02-17 10:58:22,895 simple_search_stub.py:1018]无法从c:\ users \ user \ appdata \ local \ temp \ appengine.test \ search_indexes

读取搜索索引      

INFO 2014-02-17 10:58:22,947 api_server.py:138]启动API服务器:localhost:60878

     

INFO 2014-02-17 10:58:22,994 dispatcher.py:171]启动模块“default”运行于:localhost:8080

     

INFO 2014-02-17 10:58:23,032 admin_server.py:117]启动管理服务器:localhost:8000

     

pydev调试器:进程4452正在连接

     

pydev调试器:进程4196正在连接

     

ERROR 2014-02-17 09:58:35,742 wsgi.py:262]   回溯(最近一次调用最后一次):

     

文件“C:\ Program Files(x86)\ Google \ google_appengine \ google \ appengine \ runtime \ wsgi.py”,第239行,处理中       handler = _config_handle.add_wsgi_middleware(self._LoadHandler())

     

文件“C:\ Program Files(x86)\ Google \ google_appengine \ google \ appengine \ runtime \ wsgi.py”,第298行,在_LoadHandler中       handler,path,err = LoadObject(self._handler)   在LoadObject中的文件“C:\ Program Files(x86)\ Google \ google_appengine \ google \ appengine \ runtime \ wsgi.py”,第84行       obj = 导入(路径[0])

     

文件“C:\ Users \ user \ PycharmProjects \ test \ main.py”,第16行,in       来自bin.database.DBList import DBList

     

文件“C:\ Users \ user \ PycharmProjects \ test \ bin \ database \ DBList.py”,第17行,in       来自sqlalchemy import Column,Integer,String

     

ImportError:没有名为sqlalchemy的模块

     

INFO 2014-02-17 10:58:36,410 module.py:617]默认值:“GET / HTTP / 1.1”500 -

那么如何在gae中添加第三方库呢?

1 个答案:

答案 0 :(得分:3)

这是可以预料到的,因为GAE不知道您的virtualenv正在使用什么。为了缓解使用第三方库的问题,您需要做的就是下载库及其所有依赖项的源代码,并将其放入根项目目录下的文件夹中。

将文件夹添加到PYTHONPATH,您可以通过以下方式执行此操作:

import sys; sys.path.append('<your relative path to directory here>')

然后你们都准备好了。按照惯例,您放置所有第三方库的目录称为lib