当前位置: 首页 > 面试题库 >

没有名为_mysql的模块-Google App Engine和Django

唐麒
2023-03-14
问题内容

首先,我正在 Mac(Yosemite)上工作

我已经使用 Google App Engine* 创建了一个简单的 Django 项目。按照文档中的建议,我在生产环境中使用 Cloud
SQL
,在开发环境中使用 MySQL 。当然,该项目在我的开发机上使用 virtualenv
*

我可以使用Django的内置 runserver 命令运行项目,而不会出现问题,即使将其部署到GAE,也可以。

但是,如果我使用GAE启动器运行开发服务器,则每次尝试加载页面时都会引发错误:

ImproperlyConfigured: Error loading MySQLdb module: No module named _mysql

我安装了与GAE相同版本的MySQLdb。目前其1.2.4。MySQLdb可用于GAE SDK,所以我不知道为什么它不能导入_mysql。


问题答案:

我终于找到了解决方法。

仅仅将 MySQLdb 添加到您的 GAE 库是不够的。MySQLdb尝试导入 _mysql
(.so或.c文件),具体取决于您使用的MySQLdb版本。我想似乎直接导入它们无法正常工作。可能是因为它是一个低级C文件,并且正如docs
GAE中所述,它不支持任何类型的C扩展。如果您知道更好的解释,请在评论部分与我们分享。

解决方案:

首先,我必须重命名 _mysql.so 。我的现在只是 mysql.so

然后在同一目录中创建一个名为 _mysql.py 的文件,并将以下代码放入其中:

def __bootstrap__():
   global __bootstrap__, __loader__, __file__
   import sys, pkg_resources, imp
   __file__ = pkg_resources.resource_filename(__name__,'mysql.so') #point to your renamed _mysql.so
   __loader__ = None; del __bootstrap__, __loader__
   imp.load_dynamic(__name__,__file__)
__bootstrap__()

GAE现在应该导入MySQLdb,而不会出现错误。



 类似资料:
  • 问题内容: 卸载旧的Django版本后,我已经更新到最新的Django版本1.0.2。但是现在当我运行django-admin.py时,出现以下错误。我该如何解决? 问题答案: 你必须确保django在你的PYTHONPATH中。 要进行测试,只需在python shell中执行即可。应该没有输出: 如果你安装的Django通过(或与附带的),然后在你检查site-packages,如果文件(.)

  • 嗨,我正在学习线性代数与python的Edx课程。(http://nbviewer.ipython.org/github/ULAFF/notebooks/tree/may-14-2014/). 在第一个框中的“02.4.2.10矩阵向量乘法练习”中,代码为: 生成问题是Edx教授创建的一个模块。但是,我在导入Symphy时出错。 我得到的错误如下: 我下载并安装了症状,如果我导入,它可以在终端(苹

  • 问题内容: 我正在将Django应用程序部署到开发服务器,并且在运行时遇到此错误: 似乎与一起分发。最初,我认为这可能不会安装到virtualenv中的Python,所以我使用以下命令将了(与Python相同的版本)安装到virtualenv 中的Python站点软件包: 编辑:这只发生在virtualenv内部。如果我在virtualenv外部打开控制台,则该控制台存在,但仍然出现相同的错误。

  • 问题内容: 我有这个问题: 我已经安装了PIL,但仍然无法正常工作。我使用OSX。 我正在尝试为Django Simple Captcha安装此模块。 问题答案: 克里斯托弗的建议对我来说非常有效。 详细信息如下:1.卸载现有的Python Imaging Library 下载并解压缩源版本(从此处 http://effbot.org/downloads/Imaging-1.1.6.tar.gz)

  • 问题内容: 我正在使用Python 2.5.4版并安装MySQL 5.0版和Django。Django在Python上运行良好,但在MySQL上运行良好。我在Windows Vista中使用它。 问题答案: 你需要使用以下命令之一。哪一个取决于你拥有和使用的操作系统和软件。 easy_install mysql-python(混合OS) pip安装mysql-python(mix os / pyt

  • 问题内容: 在尝试验证tensorflow-gpu的安装时,尝试执行“将tensorflow作为tf导入”时出现了ImportError。我在Windows 7上使用Quadro K620。Tensorflow使用pip安装。 以下是堆栈跟踪: 我看过其他多个堆栈溢出帖子,例如纠正路径之类的内容,但我无法解决此问题。 问题答案: 我今天遇到了同一问题,请改用Windows的cuDNN v5.1库,