在Centos上安装mysql-python

fre*_*set 16 python mysql

我正在尝试在centos 5.5上安装MySQL-python lib.我跑了

sudo yum install MySQL-python
Run Code Online (Sandbox Code Playgroud)

但是当我尝试时:

import MySQLdb
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

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)
Run Code Online (Sandbox Code Playgroud)

关于如何解决这个问题的任何线索?

小智 37

第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!
Run Code Online (Sandbox Code Playgroud)

第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()
Run Code Online (Sandbox Code Playgroud)

输出继电器:

Database version : 5.5.20 
Run Code Online (Sandbox Code Playgroud)


Kru*_*ain 11

我有Python 2.7.5,MySQL 5.6和CentOS 7.1.1503.

对我来说,它使用以下命令:

# pip install mysql-python
Run Code Online (Sandbox Code Playgroud)

请注意这里的先决条件:

安装Python pip:

# 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
Run Code Online (Sandbox Code Playgroud)

安装Python开发包:

# yum install python-devel
Run Code Online (Sandbox Code Playgroud)

安装MySQL devel包:

# yum install mysql-devel
Run Code Online (Sandbox Code Playgroud)


wir*_*d00 5

对于centos7,我需要: sudo yum install mysql-devel gcc python-pip python-devel sudo pip install mysql-python

因此,gccmysql-devel(而不是mysql)很重要


mlu*_*bke 3

您可能没有通过 yum 安装 MySQL?存储库中的 MySQLDB 版本与存储库中的 MySQL 版本相关联。版本需要匹配。

您的选择是:

  1. 安装 MySQL 的 RPM 版本。
  2. 将 MySQLDB 编译为您的 MySQL 版本。

  • sudo yum install mysql mysql-devel mysql-lib sudo yum install MySQL-python pip install mysql-python (7认同)