2010-12-07 2 views
16

Я пытаюсь получить MySQL-python lib, установленный на centos 5.5. Я побежалУстановка mysql-python на Centos

sudo yum install MySQL-python 

, но потом, когда я попробовал:

import MySQLdb 

Я получаю эту ошибку:

Traceback (most recent call last): 
    File "<stdin>", line 1, in ? 
    File "MySQLdb/__init__.py", line 22, in ? 
    raise ImportError("this is MySQLdb version %s, but _mysql is version %r" % 
ImportError: this is MySQLdb version (1, 2, 3, 'final', 0), \ # added linebreak 
but _mysql is version (1, 2, 1, 'final', 1) 

любые подсказки о том, как это исправить?

ответ

3

Возможно, вы не установили MySQL через yum? Версия MySQLDB в репозитории привязана к версии MySQL в репозитории. Версии должны соответствовать.

Ваш выбор:

  1. Установите версию RPM в MySQL.
  2. Скомпилируйте MySQLDB в свою версию MySQL.
+0

Довольно уверен, что я сделал установить MySQL с помощью ням, но это было некоторое время назад, так что я не уверен. Я могу пойти и удалить его сейчас, а затем переустановить его через yum, чтобы узнать, устраняет ли это проблему. – 2010-12-07 19:59:05

+0

Просто попробовал переустановить mysql, mysqlserver и mysqldb из yum, но все равно имею ту же самую ошибку msg. Сейчас я попробую ваше второе решение. – 2010-12-07 20:18:27

27

Шаг 1 - Установите пакет

# yum install MySQL-python 
Loaded plugins: auto-update-debuginfo, langpacks, presto, refresh-packagekit 
Setting up Install Process 
Resolving Dependencies 
--> Running transaction check 
---> Package MySQL-python.i686 0:1.2.3-3.fc15 will be installed 
--> Finished Dependency Resolution 

Dependencies Resolved 

================================================================================ 
Package    Arch   Version     Repository  Size 
================================================================================ 
Installing: 
MySQL-python   i686   1.2.3-3.fc15   fedora   78 k 

Transaction Summary 
================================================================================ 
Install  1 Package(s) 

Total download size: 78 k 
Installed size: 220 k 
Is this ok [y/N]: y 
Downloading Packages: 
Setting up and reading Presto delta metadata 
Processing delta metadata 
Package(s) data still to download: 78 k 
MySQL-python-1.2.3-3.fc15.i686.rpm      | 78 kB  00:00  
Running rpm_check_debug 
Running Transaction Test 
Transaction Test Succeeded 
Running Transaction 
    Installing : MySQL-python-1.2.3-3.fc15.i686        1/1 

Installed: 
    MySQL-python.i686 0:1.2.3-3.fc15            

Complete! 

Шаг 2 - Тест работает

import MySQLdb 
db = MySQLdb.connect("localhost","myusername","mypassword","mydb") 
cursor = db.cursor() 
cursor.execute("SELECT VERSION()") 
data = cursor.fetchone()  
print "Database version : %s " % data  
db.close() 

Ouput:

Database version : 5.5.20 
11

У меня есть Python 2.7.5, MySQL 5.6 и CentOS 7.1.1503.

Для меня он работал с помощью следующей команды:

# pip install mysql-python 

Примечание предпосылками здесь:

Установите Python пип:

# rpm -iUvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm 

# yum -y update 
Reboot the machine (if kernel is also updated) 

# yum -y install python-pip 

Установка Python Devel пакеты:

# yum install python-devel 

Установка MySQL Devel пакеты:

# yum install mysql-devel