簡體   English   中英

ImportError:沒有名為 MySQLdb 的模塊

[英]ImportError: No module named MySQLdb

我指的是以下教程來為我的 Web 應用程序創建一個登錄頁面。 http://code.tutsplus.com/tutorials/intro-to-flask-signing-in-and-out--net-29982

我遇到了數據庫問題。 我得到一個

ImportError: No module named MySQLdb

當我執行

http://127.0.0.1:5000/testdb

我已經嘗試了所有可能的安裝python mysql的方法,教程中提到的一種,easy_install,sudo apt-get install。

我已經在我的虛擬環境中安裝了 mysql。 我的目錄結構與教程中解釋的相同。 該模塊已成功安裝在我的系統中,但我仍然收到此錯誤。

請幫忙。 這可能是什么原因造成的。

如果你在編譯二進制擴展時遇到問題,或者在你不能的平台上,你可以嘗試使用純 python PyMySQL綁定。

只需pip install pymysql並切換您的 SQLAlchemy URI 以像這樣開始:

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://.....'

您也可以嘗試其他一些驅動程序

或者試試這個:

apt-get install python-mysqldb

你可以試試

pip install mysqlclient

我的問題是:

return __import__('MySQLdb')
ImportError: No module named MySQLdb

和我的決議:

pip install MySQL-python
yum install mysql-devel.x86_64

一開始,我只是安裝了 MySQL-python,但問題仍然存在。 所以我認為如果這個問題發生了,你也應該考慮 mysql-devel 。 希望這可以幫助。

我在研究 SQLAlchemy 時遇到了這個問題。 SQLAlchemy for MySQL 使用的默認方言是mysql+mysqldb

engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')

執行上述命令時出現“ No module named MySQLdb ”錯誤。 為了修復它,我安裝了mysql-python模塊並且問題得到了修復。

sudo pip install mysql-python

所以我花了大約 5 個小時試圖弄清楚在嘗試運行時如何處理這個問題

./manage.py makemigrations

使用 Ubuntu Server LTS 16.1、完整的 LAMP 堆棧、Apache2 MySql 5.7 PHP 7 Python 3 和 Django 1.10.2,我真的很難找到一個好的答案。 事實上,我仍然不滿意,但唯一對我有用的解決方案是......

sudo apt-get install build-essential python-dev libapache2-mod-wsgi-py3 libmysqlclient-dev

其次是(從虛擬環境內部)

pip install mysqlclient

當我嘗試設置新的 Web 服務器時,我真的不喜歡必須使用開發安裝,但不幸的是,這種配置是我可以采用的唯一最舒服的路徑。

根據我的經驗,這也取決於 Python 版本。

如果您使用的是 Python 3,@DazWorrall 的回答對我來說效果很好。

但是,如果您使用的是 Python 2,則應該

sudo pip install mysql-python

這將安裝“MySQLdb”模塊,而無需更改 SQLAlchemy URI。

在 ubuntu 20 中,你可以試試這個:

sudo apt-get install libmysqlclient-dev
sudo apt-get install gcc
pip install mysqlclient

雖然@Edward van Kuik回答是正確的,但它沒有考慮virtualenv v1.7 及更高版本的問題

特別是在 Ubuntu 上通過apt安裝python-mysqldb將其放在/usr/lib/pythonX.Y/dist-packages下,但默認情況下此路徑不包含在 virtualenv 的sys.path中。

因此,要解決這個問題,您應該通過運行以下命令來使用系統包創建您的 virtualenv:

virtualenv --system-site-packages .venv

yum install MySQL-python.x86_64

為我工作。

對於帶有 python3 的 Ubuntu 20.04

 sudo apt-get install python3-mysqldb

默認情況下,這對我有用

創建一個 sqlite 引擎實例

engine = create_engine('mysql://username:password@your_host/your_dbname')

或者

pip install pymysql

創建一個 sqlite 引擎實例

create_engine('mysql://...

有很多與權限相關的錯誤,什么不是。 你可能想試試這個:

xcode-select --install

sudo apt-get install python-mysqldb

這是我所做的:

首先,安裝一個python包: pip3 install PyMySQL

然后將以下代碼行添加到您的項目中:

import pymysql
pymysql.install_as_MySQLdb()

現在這應該可以解決您的問題,以下是可選的,適用於使用 SqlAlchemy 連接到 mysql 服務器的任何人:

engine = create_engine("mysql://YOURMYSQLURL")替換為: engine = create_engine("mysql+pymysql://YOURMYSQLURL")

當我托盤構建 python flask eccomerce web-application 時,我遇到了這種類型的錯誤

ModuleNotFoundError:沒有名為“MySQLdb”的模塊?

我托盤查看安裝在我的窗口 10 上的 python 版本

這是python 3.10

所以 MYSQL-PYTHON 兼容其他版本的 python 3.8

我刪除了 python 3.10 並安裝了 python 3.8 版本

變好了!

蟒蛇--版本

3.8

點子--版本

蟒蛇3.8

所以安裝連接器

點安裝 MYSQL-PYTHON

安裝成功

我有同樣的問題,安裝 mySQL 連接器並解決了

pip install mysqlclient

更多細節-> SQLAlchemy 官方文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM