這將是我人生中第二次發佈幾乎完全相同的東西。這次和上次的區別大概是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