我正在使用 googleAppEngineLauncher 嘗試 mysql 連線。
它給出了日誌
File "/Users/kakshilshah/Desktop/hope/skeduleBackend/django/utils/importlib.py", line 40, in import_module
__import__(name)
File "/Users/kakshilshah/Desktop/hope/skeduleBackend/django/db/backends/mysql/base.py", line 17, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
ImproperlyConfigured: Error loading MySQLdb module: No module named _mysql
我已經做好了pip install MySQL-python
甚至像這樣的命令也python manage.py dbshell
可以工作,並將我連接到 cloudsql 後端。
我可以訪問那裡的所有桌子。
但是,運行它會出現相同的錯誤。
我安裝了mysql 5.6。
將以下內容加入 app.yaml
- name: MySQLdb
version: "latest"
也沒有幫助,因為我檢查了庫目錄,沒有 mysqldb。
我的設定 -
import os
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '173.194.xxx.xxx',
'NAME': 'my_database',
'USER': 'root',
'PASSWORD': 'xxxxxxxx',
}
}
答案1
如果您透過 pip 安裝 MySQL-Python,則可能無法建置「_mysql」擴展,該擴展是 C 擴展,需要 MSVC++ 9.0 才能建置:
building '_mysql' extension
error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27
在 Windows 上,最好的解決方案是僅使用 MySQL-python 的二進位安裝程序,例如http://sourceforge.net/projects/mysql-python。如果需要,您可以下載適用於 Python 的 MSVC++ 編譯器,但您還需要安裝 MySQL 開發人員版本,包括 C 頭檔和函式庫,並且可能會遇到其他問題。
當然,這只適用於在開發伺服器上本地運行應用程序,因為 App Engine Python 運行時已經在您部署應用程式的遠端環境中包含 MySQLdb。
答案2
如果你像我一樣使用帶有 Python 3.5 的 Ubuntu 伺服器,我剛剛花了幾個小時試圖解決這個問題。 apache 伺服器不會開始使用我透過 virtualenv 進行的 wsgi 設定。
所以我嘗試了一切,pip install this 和 pip install that。因此,僅供參考,對於 Python 3.5,您需要安裝 pip 函式庫 mysqlclient 才能透過 python 和 django 連接到 mysql。然而,我不斷收到與您相同的錯誤...最後我所做的是運行:
easy_install mysqlclient
就這麼簡單,我相信我缺少一些依賴項,而 easy_install 一次性獲得併安裝了這些依賴項。
祝你好運,希望它對您或其他發現此頁面並在隧道盡頭尋找光明的人有所幫助。