簡體   English   中英

沒有名為 MySQLdb 的模塊

[英]No module named MySQLdb

我正在使用 Python 版本 2.5.4 並安裝 MySQL 版本 5.0 和 Django。 Django 可以與 Python 一起正常工作,但不能與 MySQL 一起工作。 我在 Windows Vista 中使用它。

您需要使用以下命令之一。 哪一個取決於您擁有和使用的操作系統和軟件。

  1. easy_install mysql-python (混合操作系統)
  2. pip install mysql-python (mix os/python 2)
  3. pip install mysqlclient (mix os/python 3)
  4. apt-get install python-mysqldb (Linux Ubuntu, ...)
  5. cd /usr/ports/databases/py-MySQLdb && make install clean (FreeBSD)
  6. yum install MySQL-python (Linux Fedora, CentOS ...)

對於 Windows,請參閱此答案:安裝 mysql-python (Windows)

...請記住,python3.x 沒有 MySQLdb

(我知道問題是關於 python2.x 但谷歌對這篇文章的評價很高)


編輯:如評論中所述,有一個 MySQLdb 的分支添加了 Python 3 支持: github.com/PyMySQL/mysqlclient-python

如果您的 python 版本是3.5 ,請執行pip install mysqlclient ,其他東西對我不起作用

mysqldb是 Python 的一個模塊,它沒有預先安裝或與 Django 一起提供。 你可以在這里下載mysqldb

Ubuntu:

sudo apt-get install python-mysqldb

請注意,這未針對 python 3.x 進行測試

在 CMD 中

pip install wheel
pip install pymysql

在 settings.py

import pymysql
pymysql.install_as_MySQLdb()

它對我有用

我在ubuntu(linux),對我有用的是

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential

然后最后

pip install mysqlclient

對於 Windows:

pip install mysqlclient pymysql

然后:

import pymysql
pymysql.install_as_MySQLdb()

對於 python 3 Ubuntu

sudo apt-get install -y python3-mysqldb
pip install PyMySQL

然后將這兩行添加到您的 Project/Project/ init .py

import pymysql
pymysql.install_as_MySQLdb()

適用於 WIN 和 python 3.3+

對於試圖找到sqlalchemy解決方案時來到此頁面的任何人,您需要做的就是:

pip install PyMySQL

並調整您的連接字符串以使用 PyMySQL,從mysql://mysql+pymysql://

嘗試這個。

pip install MySQL-python

如果 pip install mysqlclient 產生錯誤並且您使用的是 Ubuntu,請嘗試:

sudo apt-get install -y python-dev libmysqlclient-dev && sudo pip install mysqlclient

對於 Python 3.6+

sudo apt-get install libmysqlclient-dev
pip3 install mysqlclient

成功了

蟒蛇 3.8

sudo apt-get install libmysqlclient-dev
sudo apt-get install -y python3-mysqldb
pip3 install pymysql

設置.py

import pymysql
pymysql.install_as_MySQLdb()

我在windows下遇到了同樣的情況,尋找解決辦法。

看到這篇文章Install mysql-python (Windows)

它指出安裝這樣的 pip 環境很困難,需要許多其他依賴項。

但我終於知道,如果我們使用版本低至1.3.4mysqlclient ,它就不再需要那個要求了,所以試試:

pip install mysqlclient==1.3.4
pip install --user mysqlclient 

以上對我來說就像對我的魅力一樣。我實際上是從 sqlalchemy 出錯的。 環境信息:

Python:3.6,Ubuntu:16.04,conda 4.6.8

我個人建議使用pymysql而不是使用正版 MySQL 連接器,它為您提供了一個獨立於平台的接口,並且可以通過pip安裝。

您可以像這樣編輯 SQLAlchemy URL 架構: mysql+pymysql://username:passwd@host/database

  • 使用cd轉到您的項目目錄。
  • source/bin/activate (如果之前沒有激活你的環境)。
  • 運行命令easy_install MySQL-python

感謝 derevo,但我認為還有另一種好方法:

  1. 下載並安裝ActivePython
  2. 打開命令提示符
  3. 鍵入pypm install mysql-python
  4. 閱讀此軟件包的特定說明。

我認為pypmeasy_install更強大、更可靠。

如果您在 Vista 上運行,您可能需要查看Bitnami Django 堆棧。 它是 Apache、Python、MySQL 等的多合一堆棧,與Bitrock跨平台安裝程序打包在一起,使其非常容易上手。 它可以在 Windows、Mac 和 Linux 上運行。 哦,而且是完全免費的 :)

對於Python 3+版本

mysql-connector安裝為:

pip3 install mysql-connector 

示例 Python DB 連接代碼:

import mysql.connector
db_connection = mysql.connector.connect(
  host="localhost",
  user="root",
  passwd=""
)
print(db_connection)

輸出:

> <mysql.connector.connection.MySQLConnection object at > 0x000002338A4C6B00>

這意味着,數據庫已正確連接。

在 Debian Buster 上,以下解決方案適用於 python 3.7:

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

蟒蛇 3

確保導入順序:

#BAD
import MySQLdb             # <------ NOT here
import pymysql
pymysql.install_as_MySQLdb()

#GOOD
import pymysql
pymysql.install_as_MySQLdb()
import MySQLdb              # <------- HERE!

我已經嘗試了上面的方法,但仍然沒有名為'MySQLdb'的模塊,最后,我成功了

easy_install mysql-python

我的環境是 unbuntu 14.04

在 OSX 上,這些命令對我有用

brew install mysql-connector-c 
pip install MySQL-python

如果您正在使用 SQLAlchemy 並且錯誤位於/site-packages/sqlalchemy/dialects/mysql/mysqldb.py

from ...connectors.mysqldb import (
                        MySQLDBExecutionContext,
                        MySQLDBCompiler,
                        MySQLDBIdentifierPreparer,
                        MySQLDBConnector
                    )

所以你可能錯過了SQLAlchemy的 mysqldb 連接器,解決方案是在安裝mysql-python模塊后重新安裝 sqlalchemy。

在通過 docker 映像全新安裝的 Ubuntu 18.04 上,以上方法均不適用於我。

以下為我解決了它:

apt-get install holland python3-mysqldb

在我運行 Catalina v10.15.2 的 Mac 上,我遇到了以下 MySQLdb 版本沖突:

ImportError: this is MySQLdb version (1, 2, 5, 'final', 1), but _mysql is version (1, 4, 6, 'final', 0)

為了解決它,我做了以下事情:

pip uninstall MySQL-python
pip install MySQL-python

在 mac 上使用 mysql.connector.python 版本 8.0.24 遇到了這個問題(如果代碼庫相同,那么問題也應該發生在 Windows 中)。 第 51 行的這個文件導入“從 django.db.backends.mysql.base 導入 DatabaseWrapper 作為 MySQLDatabaseWrapper”。 導入的文件有以下代碼 14-20(您收到的確切代碼和錯誤是代碼的一部分

try:
    import MySQLdb as Database
except ImportError as err:
    raise ImproperlyConfigured(
        'Error loading MySQLdb module.\n'
        'Did you install mysqlclient?'
    ) from err

錯誤在這里形成。 不知道為什么這個導入在不同版本的 mysql 連接器中不斷返回,但 8.0.23 沒有導入,所以我恢復到那個版本並且錯誤消失了......這是你希望繼續使用 mysql.connector 的情況。Python

Win10 / Python27 這對我有用:

easy_install mysql-python

所有其他“pip install ...”因依賴錯誤而失敗

當我運行命令 apt-get install python-mysqldb 時,我仍然遇到下面的錯誤信息

安裝mysqldb python接口時找不到mysql_config

所以我首先必須運行下面的命令

sudo apt-get install libmariadbclient-dev

如果您使用 MySQL 而不是 MariaDB,請運行以下命令

然后運行

apt-get install python-mysqldb 

然后現在運行

pip install mysqlclient

對於CentOS 8Python3

$ sudo dnf install python3-mysqlclient -y

Windows 7 / Python 3.6.5 這對我有用:

conda install -y mysqlclient

暫無
暫無

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

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