Python MySQLdb modülünü pip kullanarak nasıl kurabilirim?


310

Python için MySQLdb modülünü pip kullanarak nasıl kurabilirim ?


11
Bunu Python3 ile kullanmak istiyorsanız (örneğin, Django'nun en yeni sürümü ile) MysqlDB python3'ü desteklemediğinden mysqlclient'e ihtiyacınız olacak. Bu Soruya
TD Smith

Mysqlclient ile şimdiye kadar hiçbir sorun Python 2.7 ve MariaDB kullanıyorum.
Dave Everitt

Yanıtlar:


522

Yapması kolay, ancak doğru yazımı hatırlamak zor:

pip install mysqlclient

1.2.x sürümlerine ihtiyacınız varsa (yalnızca eski Python), pip install MySQL-python

Not: Yukarıdaki komutu çalıştırırken bazı bağımlılıkların yerinde olması gerekebilir. Bunların çeşitli platformlara nasıl yükleneceğine dair bazı ipuçları:

Ubuntu 14, Ubuntu 16, Debian 8.6 (jessie)

sudo apt-get install python-pip python-dev libmysqlclient-dev

Fedora 24:

sudo dnf install python python-devel mysql-devel redhat-rpm-config gcc

Mac os işletim sistemi

brew install mysql-connector-c

bu başarısız olursa, deneyin

brew install mysql

26
Adın tamamını hatırlamak zorunda değilsiniz pip search mysql, çıktıda ihtiyacınız olanı kullanabilir ve bulabilirsiniz.
WKPlus

12
@WKPlus: doğru ... ama buldum pip search mysqldbve bulamadım. Böylece, bu cevabı + 1'ledim.
Dan H

7
@WKPlus aslında mysql pip aramasından sonra doğru seçimi bulmak için gerçek bir güçlük
kommradHomer

9
Bunu her seferinde google'da yapmalıyım, çok lanet olası
sleepycal

3
@DavidOkwii Bir virtualenv içinde değilseniz, sudo gereklidir. Bu senin sorunun olabilirdi.
Marian

138

Yeni bir Ubuntu 14.04.2 sisteminden başlayarak, bu iki komuta ihtiyaç duyuldu:

 apt-get install python-dev libmysqlclient-dev
 pip install MySQL-python

Sadece "pip install" tek başına çalışmadı.

Gönderen http://codeinthehole.com/writing/how-to-set-up-mysql-for-python-on-ubuntu/


2
bu bir işe yaradı, bazı nedenlerden dolayı basit pip kurulumu ubuntu üzerinde temiz çalışmıyor
Dap


error: command 'x86_64-linux-gnu-gcc' failed with exit status 1Kullanımı düzeltmek içinsudo apt-get install build-essential
FelikZ

Bunun neden gerekli olduğunu merak ediyorum. Bana bir şey oluyor. Bunu sadece kurarak ve inşa ederek test ettim. Yüklemek yerine kurduklarınızdan herhangi birini oluşturdunuz mu?
Ray Kiddy

Bu Ubuntu için elbette cevap olarak kabul edilmelidir.
Roon13

23

İlk

pip install pymysql

Sonra aşağıdaki kodu __init__.py( projectname/__init__.py) içine koyun

import pymysql
pymysql.install_as_MySQLdb()

Ortamım (python3.5, django1.10) ve bu çözüm benim için çalışıyor!

Bu yardımcı olur umarım!!


3
Vay canına, 5 saat içinde bunu başarmadan düzeltmeye çalıştım. Bu, Ubuntu 16.04 / python 3.5 / Django 1.11 üzerinde çalışan tek çözümdür. Bunu paylaştığın için teşekkürler.
Paullo

bu benim için işe yaramaz, Benim ortamım python 3.7 ve django 2.2. Lütfen bana yardım edin.
Rajen K Bhagat

Bu orada olmalı. Saatlerdir bir çözüm arıyordum. Django 1.6 çalıştıran python 2.7 ile bir virtualenv var. MySQL-python veya mysqlclient'i yükleyemedim. Ne denesem denesem bir "ölümcül hata: mysql.h" alıyordum. Bu hile yaptı.
rolandsaven

22

MySQLdb'nin 64-bit sürümünü Windows üzerinden Pip (sorun derleme kaynakları) [32bit sürümü yüklendi] ile yüklerken sorun yaşadım. Derlenmiş MySQLdb dosyasını http://www.lfd.uci.edu/~gohlke/pythonlibs/ adresinde bulunan .whl dosyasından yüklemeyi yönetti.

.Whl dosyası daha sonra https://pip.pypa.io/en/latest/user_guide/#instal-from-wheels adresinde belge olarak pip yoluyla yüklenebilir.

Örneğin, eğer C:/kaydederseniz

pip install c:/MySQL_python-1.2.5-cp27-none-win_amd64.whl

Takip: Python'un 64bit sürümüne sahipseniz, MySQLdb'nin 64 bit AMD sürümünü yukarıdaki bağlantıdan [yani bir Intel işlemciniz olsa bile] kurmak istersiniz. Bunun yerine 32 bit sürümünü yüklemeyi denerseniz, aşağıdaki yorumlarda desteklenmeyen tekerlek hatasını aldığınızı düşünüyorum.


Toplam başarısız. Desteklenmeyen tekerlek
M Hornbacher

3
MySQL istemcisine ihtiyacım vardı. pip install mysqlclient-1.3.7-cp27-none-win_amd64.whlharika çalışıyor.
arsenik

2
Dosyayı indirmek için http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python adresine gittim whl(64 bit Python kurulumumu eşleştirmek için 64 bit dl'd). Kayıtlı dosya c:/dizine ve koştu pip install c:/MySQL_python-1.2.5-cp27-none-win_amd64.whlSaniyeler içinde yüklü ve gitmek için iyi oldu. Çok kolay!
curtisp

Benim için de çalıştı, çünkü adıyla pip yükleme başarısız oldu.
Artem Russakovskii


7

Tüm seçeneği denedim ama Redhat platformunda çalıştıramadım. Çalıştırmak için aşağıdakileri yaptım: -

yum install MySQL-python -y

Paket kurulduktan sonra, aşağıdaki yorumlayıcıda modülü içeri aktarabildi: -

>>> import MySQLdb
>>> 

Soru özellikle belirtiliyordu pip. Hangi dağıtımı kullanıyorsunuz? Fedora 24, bu eserler yüklemek için modül aracılığı pip: sudo dnf install python python-devel mysql-devel redhat-rpm-config gcc,sudo pip install MySQL-python
Marian

Sorunun pip yoluyla olduğunu anlıyorum ama şahsen pip kullanarak çözemedim. Bu yüzden sadece sorunu benim için çözen geçici çözümümü paylaştım. Centos 6.8 kullanıyorum. pip listesi mysql ile ilgili bir şey göstermez ve "pip install MySQL-python" yaptığımda bir hata attı. Şimdi ilginç bir şekilde biz yum i: e "yum install MySQL-python" üzerinden yükledikten sonra MySQLdb ithal edebildiğini anladım. Ayrıca bir kez yum kurulumu ile yapılan herhangi bir hata olmadan pip üzerinden yüklemek mümkün.
Ashwin

6

Pycharm'a gidin, ardından varsayılan ayara gidin -> pip (çift tıklama) - pymsqldb ..--> install - bunun gibi bir programa kullanımdan sonra

import pymysql as MySQLdb

# Open database connection
db = MySQLdb.connect("localhost","root","root","test" )

# prepare a cursor object using cursor() method
cursor = db.cursor()

# execute SQL query using execute() method.
cursor.execute("show tables")

# Fetch a single row using fetchone() method.
data = cursor.fetchall()
print (data)

# disconnect from server
db.close()

3

Raspberry Pi [Raspbian OS] kullanıyorsanız

İlk önce pip komutunun kurulması gerekiyor

apt-get install python-pip

Böylece sadece Sequent yükleyin

apt-get install python-dev libmysqlclient-dev

apt-get install python-pip

pip install MySQL-python

Ahududu söz konusu değildir
Héctor Valverde Pareja


3

Yüklemek yapamıyorsanız mysqlclient da yükleyebilirsiniz pymysql :

pip install pymysql

Bu MySqldb ile aynı şekilde çalışır . Bundan sonra MySQLdb yerine pymysql kullanın


Cevap bu olmalı.
JayJay123

2

Ben de aynı sorunu yaşadım.Windows iseniz bu adımları izleyin. Git: 1.Bilgisayarım 2.Sistem Özellikleri 3. Gelişmiş Sistem Ayarları 4. "Gelişmiş" sekmesi altında "Ortam Değişkenleri" yazan düğmeyi tıklatın. 5. Sistem Değişkenleri altında aşağıdaki değişkenleri eklemeniz / değiştirmeniz gerekir: PYTHONPATH ve Yol. İşte değişkenlerimin nasıl göründüğüne dair bir macun: python yolu:

C:\Python27;C:\Python27\Lib\site-packages;C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk;C:\Python27\Scripts

yol:

C:\Program Files\MySQL\MySQL Utilities 1.3.5\;C:\Python27;C:\Python27\Lib\site-packages;C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk;C:\Python27\Scripts

Referans için bu bağlantıya bakın


1

Yukarıdaki cevap harika, ancak Windows'ta MySQL-python'u kurmak için pip kullanırken bazı sorunlar olabilir

Örneğin, Visual Stdio ile ilişkili bazı dosyalara ihtiyaç duyar . Bir çözüm VS2008 veya 2010'u yüklüyor …… Açıkçası, çok pahalıya mal oluyor.

Başka bir yol @ bob90937'nin cevabıdır. Eklemek için bir şeyler yapmak için buradayım.

ile http://www.lfd.uci.edu/~gohlke/pythonlibs u Python programlama dilinin resmi CPython dağıtımı için çok sayıda bilimsel açık kaynak uzatma paketleri birçok Windows ikilileri indirebilirsiniz.

Konuya geri dönersek, MySQL-python (py2) veya Mysqlclient (py3) 'i seçebilir ve kurmak için pip install kullanabiliriz. bize büyük kolaylık sağlar!


1

Python3 için bunu yapmam gerekiyordu:

python3 -m pip install MySQL


1

RHEL 7'de:

sudo yum install yum-utils mariadb-devel python-pip python-devel gcc

sudo /bin/pip2 install MySQL-python


1

Sisteminizde Windows yüklüyse, cmd'de aşağıdaki komutu yazın:

pip install mysql-connector

yukarıdaki komut işe yaramazsa şunu kullanmayı deneyin:

pip install mysql-connector-python

Şimdi, yukarıdaki komutlar işi yapmazsa, kullanmayı deneyin:

pip install mysql-connector-python-rf

Şimdi gitmekte fayda var.


1

Burada verilen cevapların çoğu oldukça kafa karıştırıcı, bu yüzden basitçe anlatmaya çalışacağım. Bunu yüklememe yardımcı oldu

pip install pymysql

ve sonra python dosyasında aşağıdaki komutu kullanın

import pymysql as MySQLdb

Bu şekilde MySQLdb'yi sorunsuz bir şekilde kullanabilirsiniz.


0

Pip3 çalışmıyorsa deneyebilirsiniz:

sudo apt install python3-mysqldb

Çok iyi bir cevap değil. Python sürümünün 3 ve OS'nin Debian / Ubuntu olduğunu varsayıyorsunuz, ancak bunu bilmiyorsunuz. Lütfen yazar daha fazla ayrıntı ekleyene kadar bekleyin.
doktora

0

Çevrem:

  • Windows 10 Pro,
  • Python 3.7 (python-3.7.1-amd64.exe),
  • MySQL 8.0 (mysql-yükleyici-web-topluluk-8.0.13.0.msi)

pip install mysqlclient-1.3.13-cp37-cp37m-win_amd64.whl

benim için çalışıyor.

import MySQLdb, sys


# --------------------------------------------------
# Connect to MySQL
# --------------------------------------------------
try:
    db = MySQLdb.connect(host="localhost", user="user", passwd="pass", db="database", charset='cp1251')
except MySQLdb.Error as e:
    print ("Error %d: %s" % (e.args[0], e.args[1]))
    sys.exit()

# Creating cursor 
cursor = db.cursor()

0

aslında, @Nick T'nin cevabı benim apt-get install python-mysqldbiçin çalışmıyor, benim için çalışmayı deniyorum

root@2fb0da64a933:/home/test_scrapy# apt-get install python-mysqldb
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libmariadbclient18 mysql-common
Suggested packages:
  default-mysql-server | virtual-mysql-server python-egenix-mxdatetime python-mysqldb-dbg
The following NEW packages will be installed:
  libmariadbclient18 mysql-common python-mysqldb
0 upgraded, 3 newly installed, 0 to remove and 29 not upgraded.
Need to get 843 kB of archives.
After this operation, 4611 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://deb.debian.org/debian stretch/main amd64 mysql-common all 5.8+1.0.2 [5608 B]
Get:2 http://deb.debian.org/debian stretch/main amd64 libmariadbclient18 amd64 10.1.38-0+deb9u1 [785 kB]
Get:3 http://deb.debian.org/debian stretch/main amd64 python-mysqldb amd64 1.3.7-1.1 [52.1 kB]                    
Fetched 843 kB in 23s (35.8 kB/s)                                                                                 
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package mysql-common.
(Reading database ... 13223 files and directories currently installed.)
Preparing to unpack .../mysql-common_5.8+1.0.2_all.deb ...
Unpacking mysql-common (5.8+1.0.2) ...
Selecting previously unselected package libmariadbclient18:amd64.
Preparing to unpack .../libmariadbclient18_10.1.38-0+deb9u1_amd64.deb ...
Unpacking libmariadbclient18:amd64 (10.1.38-0+deb9u1) ...
Selecting previously unselected package python-mysqldb.
Preparing to unpack .../python-mysqldb_1.3.7-1.1_amd64.deb ...
Unpacking python-mysqldb (1.3.7-1.1) ...
Setting up mysql-common (5.8+1.0.2) ...
update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Setting up libmariadbclient18:amd64 (10.1.38-0+deb9u1) ...
Processing triggers for libc-bin (2.24-11+deb9u3) ...
Setting up python-mysqldb (1.3.7-1.1) ...
root@2fb0da64a933:/home/test_scrapy# python 
Python 2.7.13 (default, Nov 24 2017, 17:33:09) 
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>> 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.