[Python] MySQLdb(即 MySQL-python 包)在 OS X 中安装指南
本文参考:http://www.cnblogs.com/ifantastic/archive/2013/04/13/3017677.html
安装环境:OS X 操作系统,Python 2.7.10
。
MySQLdb 其实包含在 MySQL-python 包中,因此无论下载还是在 pip 中 search,都应该是搜寻 MySQL-python。
以下将说明 MySQLdb 两种常见的安装方式,下载安装或者 pip 安装 MySQL-python。
下载MySQLdb
1.可在pip中搜索最新版本MySQL-python 1.2.5, 也可以在github上下载指定版本 MySQL-python 1.2.3。 (我当前下载的是1.2.3版本)
使用 pip 安装 MySQLdb
在终端中执行:
new-host-3:~ iFantastic$ pip install MySQL-python
无论是在线安装还是下载安装,此时你可能会遇到第一个错误提示:
EnvironmentError: mysql_config not found
建议使用pip安装,因为我从 sourceforge 下载的版本居然不如 pip 中的新。如果想要升级 mysql-python 版本,可以使用以下命令:
$ easy_install MySQL-python --upgrade
[注意]如果你没有按照下文解决安装中的错误提示,那么升级也会因为同样的错误原因而失败。
解决 mysql_config not found 错误
(个人推荐使用该方法解决问题)
在默认方式安装 Mac 版 MySql 时,会在 /usr/local/mysql/bin 目录下生成 mysql_config 文件。
因此下载安装时的解决办法为:在 MySQL-python 的安装包中找到 site.cfg 文件,打开它,找到以下内容:
# The path to mysql_config.
# Only use this if mysql_config is not on your PATH, or you have some weird
# setup that requires it.
# mysql_config = /usr/local/bin/mysql_config
将最后一句句首井号去掉,并修改为:
mysql_config = /usr/local/mysql/bin/mysql_config
然后执行:
$ python setup.py install
一般说来,此时安装可以完成,但仍有问题,下文会继续阐述。
使用 pip 安装时没有办法修改 site.cfg 文件,因此可以通过修改 OS X 的系统环境变量来解决找不到 mysql_config 的错误。
修改 OS X 环境变量:打开终端,在终端中使用 vim 打开 “~/.bash_profile”,如果没有安装 vim,那就显示隐藏文件用文本编辑器打开,具体操作这里就不复述了。在 .bash_profile 中添加以下内容:
(我本人不太建议这种改法,因为更改系统配置文件影响的是整个系统,而更改安装包中的配置文件仅仅只影响一个工具。)
PATH="/usr/local/mysql/bin:${PATH}"
export PATH
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/
export VERSIONER_PYTHON_PREFER_64_BIT=no
export VERSIONER_PYTHON_PREFER_32_BIT=yes
其中 VERSIONER_PYTHON_PREFER_64_BIT 和 VERSIONER_PYTHON_PREFER_64_BIT 根据自己安装的 MySQL 进行选择。
另外再提供一个 pip 安装时找不到 mysql_config 的解决方法(我没有验证),在终端中输入以下命令:
$ sudo ln -s /usr/local/mysql/bin/* /usr/bin
好了,到这里,MySQL-python 包应该基本顺利安装。
解决 Reason: image not found 错误
安装完 MySQL-python 包后,让我们 import MySQLdb,此时出现一个错误,错误最后一行写着 Reason: image not found。
解决方法是在终端执行:
$ sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
$ sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql
之后重启 idle,成功导入 MySQLdb。
PS: 在 Ubuntu 下使用 pip 安装 MySQL-python 同样会出现 mysql_config no found 的错误提示,建议使用 sudo apt-get install python-mysqldb 来进行安装,这样直接可以安装成功。
如果使用 MacPorts 安装 MySQL,MacPorts 安装的源码包都存放在 /opt 目录下,安装完 MySQL 后,使用 port select --list mysql 查看一下当前启用的 MySQL 版本(初次安装完毕后应该是没有启用任何版本的 MySQL),然后使用 port select --set mysql mysql_you_selected 来设置启用的 MySQL 版本,之后再使用 pip 安装则无需担心 mysql-config 的问题。
[Python] MySQLdb(即 MySQL-python 包)在 OS X 中安装指南的更多相关文章
- python MySQLdb连接mysql失败(转载)
最近了解了一下django,数据库选用了mysql, 在连接数据库的过程中,遇到一点小问题,在这里记录一下,希望能够对遇到同样的问题的朋友有所帮助,少走一些弯路.关于django,想在这里也额外说一句 ...
- python MySQLdb用法,python中cursor操作数据库(转)
数据库连接 连接数据库前,请先确认以下事项: 您已经创建了数据库 TESTDB. 在TESTDB数据库中您已经创建了表 EMPLOYEE EMPLOYEE表字段为 FIRST_NAME, LAST_N ...
- python -- MySQLdb连接mysql数据库
1. python安装mysql $ pip install mysql-python 2. 数据库连接程序: import MySQLdb # 打开数据库连接db = MySQLdb.connect ...
- python MySQLdb 对mysql基本操作方法
#!/usr/bin/env python # -*- coding:utf-8 -*- import MySQLdb conn = MySQLdb.connect(host=',db='host') ...
- python MySQLdb连接mysql时报错
故障现象: >>> import MySQLdb >>> conn = MySQLdb.connect(host=,charset="utf8" ...
- Python MySQLdb模块连接操作mysql数据库实例_python
mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法.python操作数据库需要安装一个第三方的模块,在http://mysql ...
- #MySQL for Python(MySQLdb) Note
#MySQL for Python(MySQLdb) Note #切记不要在python中创建表,只做增删改查即可. #步骤:(0)引用库 -->(1)创建连接 -->(2)创建游标 -- ...
- Python标准库09 当前进程信息 (os包)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们在Linux的概念与体系,多次提及进程的重要性.Python的os包中有查询和 ...
- (转)python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)
阅读目录 1.1.1导入模块 1.1.2__name__ 1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代 ...
随机推荐
- 获取公网IP
private static string GetIP() { string tempip = ""; try { WebRequest wr = WebRequest.Creat ...
- jQuery获取多种input值的方法
1 if($("input[name=item][value='val']").attr('checked')==true) //判断是否已经打勾 name即控件name属性,va ...
- split 转义
问题:str.split("?");报错了 原因: .?*+!^$[]()\在正则里需要转义 转义需双反斜线.splt("\\+");
- tar 命令详解
tar命令[root@Linux ~]# tar [-cxtzjvfpPN] 文件与目录 -C 目标目录(注:解压时)参数:-c :建立一个压缩文件的参数指令(create 的意思):-x :解开一个 ...
- vue.js组件
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- noip 借教室 线段树95分做法
大致的思路是用线段树维护每个区间内部的最小值 段更新最小值 每次查某个区间的最小值是否满足租借要求 满足就借出去 update最小值 注意pushdown操作 还有一个从子区间提取答案的操作 提交地 ...
- [ActionScript 3.0] 通过内联函数对addFrameScript方法传递参数
虽然说不推荐使用影片剪辑隐藏方法addFrameScript();但是解决某些问题,此方法的确会方便很多. 但是却不能直接传递参数,不过可以用迂回的方法,如下: mc.addFrameScript(m ...
- 利用Oracle自带的impdp和expdp进行简单备份
目前有个这样的需求,每天晚上23点将生产库的数据备份到备份机器上,第二天备份机器的数据库可以直接使用,数据是昨天生产库的数据.(生产数据目前不多,全部数据不超过3000w条). 由于没有接触过高深的O ...
- [POJ2096] Collecting Bugs (概率dp)
题目链接:http://poj.org/problem?id=2096 题目大意:有n种bug,有s个子系统.每天能够发现一个bug,属于一个种类并且属于一个子系统.问你每一种bug和每一个子系统都发 ...
- (链接)打印相关_.NET打印小资料
掌握.NET中的日常打印:包括各个类的参数等 http://blog.csdn.net/dzweather/article/details/10171105 设置纸张大小 PrintDocument ...