这将是我人生中第二次发布几乎完全相同的东西。这次和上次的区别大概是9个月,很多困难的学习,以及过去9个月里我从来没有遇到过这个问题,并且在整个时间段内都经常使用MySQLdb。我认识到,对此的类似问题已多次提出。我已阅读回复并执行建议的修复。到目前为止,我仍然无法得出一个成功的结论,这就是我发布我的问题的原因。错误配置:加载MySQLdb模块时出错:没有名为MySQLdb的模块 - Django 1.4和Google App Engine
只是为了描述我的环境:我使用Google App Engine启动器在本地运行Google App Engine上的Django应用程序。我正在使用Mac OS X El Capitan。
当这些应用程序部署在Google App Engine上时,它们按预期工作完美无瑕。但是,在本地运行时,我会在尝试运行应用程序时始终得到ImportError。
让我列举一些我已经检查的事情和/或试图解决这个问题:
-Installed MySQL的
-Installed的mysql-python的
- 增加MySQLdb的以 “图书馆” app.yaml中的部分
- 在运行时检查PYTHONPATH以确认将正确的目录添加到路径。进口的假支票之前
- 添加路径
- 更新谷歌的App Engine SDK
我更是做了,但还能勉强现在回忆起来他们。当在运行时检查的路径,我可以清楚地看到到MySQLdb的所在google_appengine SDK目录路径如下:
/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/MySQLdb-1.2.5
这是不是我应该看?我应该指向其他的东西吗?我还指出了我安装了其他python软件包的其他目录(例如/Library/Python/2.7/site-packages/)。我错过了什么?我知道我在做一些愚蠢的事情,对此我很好。我只是想停止浪费我自己的时间来解决这样一个愚蠢的问题。我每天都在其他项目中使用MySQL,并且从未遇到类似这样的问题。我真的不知道这是什么。
让我知道如果我可以添加更多有用的信息,我会很乐意。我会把我的一些文件放在下面,希望它们可能有用。
app.yaml中:
application: *omitted*
version: 1
runtime: python27
api_version: 1
threadsafe: true
env_variables:
DJANGO_SETTINGS_MODULE: 'Freya.settings'
handlers:
- url: /favicon\.ico
static_files: static/images/favicon.ico
upload: static/images/favicon\.ico
- url: /static
static_dir: static
application_readable: true
- url: /.*
script: main.app
libraries:
- name: django
version: "latest"
- name: MySQLdb
version: "latest"
main.py:
from google.appengine.ext.webapp import util
import django.dispatch.dispatcher
import django.core.handlers.wsgi
from django.conf import settings
import django.core.signals
import django.db
import os
settings._target = None
app = django.core.handlers.wsgi.WSGIHandler()
def main():
util.run_wsgi_app(app)
if __name__ == '__main__':
main()
settings.py(数据库位):
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '*omitted*',
'NAME': '*omitted*',
'USER': '*omitted*',
}
任何帮助不胜感激。
这是我在设置中尝试的一个示例。py:
import imp
import sys
import os
print('Checking')
try:
imp.find_module('MySQLdb')
found = True
except ImportError:
found = False
print('Found: ' + str(found))
import MySQLdb
print('Import success')
这样做,当我找'找到:假'我找不到它。我发现'找到:真的'这应该告诉我,找到MySQLdb模块没有任何问题。但是,当它到达import MySQLdb
行时,程序崩溃ImportError: No module named MySQLdb
和行print('Import success')
永远不会到达
发生了什么事?
编辑:我要现在做这在我的Linux分区,但我不认为我所做会有帮我找出什么做回在Mac OS