無法在 Google 應用引擎中使用 mysql - 載入 MySQLdb 模組時發生錯誤:沒有名為 _mysql 的模組。我正在使用雲端SQL

無法在 Google 應用引擎中使用 mysql - 載入 MySQLdb 模組時發生錯誤:沒有名為 _mysql 的模組。我正在使用雲端SQL

我正在使用 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 一次性獲得併安裝了這些依賴項。

祝你好運,希望它對您或其他發現此頁面並在隧道盡頭尋找光明的人有所幫助。

相關內容