Python AppEngine 'import MySQLdb' 不工作,OS X 10.9.2,python 2.7

Posted

技术标签:

【中文标题】Python AppEngine \'import MySQLdb\' 不工作,OS X 10.9.2,python 2.7【英文标题】:Python AppEngine 'import MySQLdb' not working, OS X 10.9.2, python 2.7Python AppEngine 'import MySQLdb' 不工作,OS X 10.9.2,python 2.7 【发布时间】:2014-07-04 11:27:29 【问题描述】:

我已经成功地为我的系统 python 安装了 mysqldb——我也将该库添加到了 app.yaml,但是 dev-appserver 无法识别它。我已经按照这里的教程进行操作:https://developers.google.com/appengine/docs/python/cloud-sql/

我从这里下载并安装了最新的 Python mysql: http://sourceforge.net/projects/mysql-python/

sudo CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments python setup.py build
sudo CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments python setup.py install

如果我从命令行运行 python,我可以很高兴地导入 MySQLdb

这是我在 app.yaml 中的内容:

libraries:
- name: webapp2
  version: "2.5.2"
- name: jinja2
  version: "2.6"
- name: MySQLdb
  version: "1.2.4b4"

当我尝试打开由我的 appengine 开发服务器托管的页面时,出现了以下异常。

ERROR    2014-05-15 20:23:19,480 wsgi.py:262] 
Traceback (most recent call last):
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 239, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 298, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 84, in LoadObject
    obj = __import__(path[0])
  File "xxxx/main.py", line 10, in <module>
    import MySQLdb
ImportError: No module named MySQLdb

任何帮助将不胜感激 - 该教程不起作用。感谢您的慷慨和善意!

-s

【问题讨论】:

【参考方案1】:

以下内容对我有用。我从 App Engine 收到了同样的错误,但问题是模块 _mysql 配置不正确。

将此添加到~/.bash_profile

export PATH=$PATH:/usr/local/mysql/bin

创建指向 MySQL 库的符号链接:

ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

【讨论】:

【参考方案2】:

我在本地开发方面遇到了同样的问题,并为此苦苦挣扎了一段时间。最终,我编写了所有查询的命令行版本,对其进行了测试,然后完全部署了应用程序。它从那里开始工作。

如果您找到允许本地开发的解决方案,请在此处发布。

【讨论】:

以上是关于Python AppEngine 'import MySQLdb' 不工作,OS X 10.9.2,python 2.7的主要内容,如果未能解决你的问题,请参考以下文章

Python:使用Python AppEngine作为Twitter的代理

python appengine_config.py

Appengine Python 内存缓存容量缩减

Appengine 上 google Go 与 Python 和 Java 的资源使用情况

为整个应用设置 Python27 Google AppEngine 默认编码

AppEngine cron (python) 中的每一天、每周、每月、每年