Python MySQLdb Mac安装遇到的问题
Mac 下使用Python 连接Mysql 数据库,使用到模块MySQLdb,各种问题都出现,搜集整理下,最后发现最关键的还是Mac 下的Python 版本问题
前置条件:
1. 已经安装mysql 数据库,并且配置环境变量
建议使用:
sudo ln -s /usr/local/mysql/bin/* /usr/bin
这样建立软链接,可以快速访问
2. 确定Python 版本,下载对应的MySQLdb
3. 安装Gcc
4. 配置环境变量如下:
(添加Mysql 的路径,Mysql lib,Python 路径,Python 用多少位运行)
export PATH=$PATH:/usr/local/mysql/bin
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib
export PYTHON_HOME=$PATH:System/Library/Frameworks/Python.framework/Versions/2.7/bin
export VERSIONER_PYTHON_PREFER_32_BIT=yes
export VERSIONER_PYTHON_PREFER_64_BIT=yes
安装步骤:
1. 下载对应的MySQLdb 文件
http://sourceforge.net/projects/mysql-python/
2. 解压文件,修改里面site.cfg
找到 #mysql_config = /usr/local/bin/mysql_config
井号去掉,并且修改自己的路径 mysql_config = /usr/local/mysql/bin/mysql_config
3. 打开命令行终端cd 到 刚才的解压目录
python setup.py clean
python setup.py build
python setup.py install
执行之后就会提示安装成功了,之后推出命令行,试试 import MySQLdb 看看是否成功,即可
安装过程出现的问题:
ImportError: dlopen(/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
解决办法(建立一个软连接):
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
ImportError:dlopen(/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so,2):nosuitable image found.Didfind:/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so:mach-o,but wrong architecture
解决办法:
检查mysql 是否是64 位的,Python 是否是64 位的模式
检查mac是否存在多个版本的Python,因为在安装MySQLdb 需要clean,build,install,
在 build 的过程中,可能会出现是build 的版本,与导入包的版本不一致 ,所以导致问题
Ps:
如果上述的方法都不行的话,请检查你的Python 是否是
System/Library/Frameworks/Python.framework/Versions/2.7/bin ,只有python 是System/Library 这个目录下的python ,才可以编译通过
另外python 建议使用32版本的,这样可以兼容更多的模块
Python MySQLdb Mac安装遇到的问题的更多相关文章
- Windows及MAC 安装Python3.7.4
Windows没有Python环境,Mac自带Python 2,所以开发者需要下载Python 3进行开发相关工作,此文章介绍如何安装Python,Mac安装前可以在终端数输入python查看自带版本 ...
- Mac MySQLdb模块安装,可算解决了
转载:http://blog.csdn.net/janronehoo/article/details/25207825 短评:这篇文章感觉是比较全面解决Mac MySQLdb模块安装问题的文章了,特别 ...
- Mac安装mysqldb
一. 安装mysql (一)下载地址 https://pan.baidu.com/s/1slw50LZ 安装成功后,在系统偏好设置里有MySQL图标,可以启动或关闭MySQL 二. Mysql roo ...
- macOS安装Python MySQLdb
macOS安装Python MySQLdb 0. 参考 Mac OS X - EnvironmentError: mysql_config not found 1. 背景 import MySQLdb ...
- Python MySQLdb在Linux下的快速安装
在家里windows环境下搞了一次 见 python MySQLdb在windows环境下的快速安装.问题解决方式 http://blog.csdn.NET/wklken/article/deta ...
- Python的MySQLdb模块安装,连接,操作,增删改
1. 首先确认python的版本为2.3.4以上,如果不是需要升级python的版本 python -V 检查python版本 2. 安装mysql, 比如安装在/usr/local/my ...
- cygwin 下安装python MySQLdb
cygwin 下安装python MySQLdb 1) cygwin 更新 运行 cygwin/setup-x86_64.exe a 输入mysql,选择下面的包安装: libmysqlclient- ...
- python之mysqldb模块安装
之所以会写下这篇日志,是因为安装的过程有点虐心.目前这篇文章是针对windows操作系统上的mysqldb的安装.安装python的mysqldb模块,首先当然是找一些官方的网站去下载:https:/ ...
- python MySQLdb在windows环境下的快速安装
python MySQLdb在windows环境下的快速安装.问题解决方式 使用python访问mysql,需要一系列安装 linux下MySQLdb安装见 Python MySQLdb在Linux下 ...
随机推荐
- PHP 时间和日期 总结
PHP 时间戳 UNIX 时间戳(timestamp)是 PHP 中关于时间日期一个很重要的概念,它表示从 1970年1月1日 00:00:00 到当前时间的秒数之和. 可以使用time()函数来获取 ...
- 门面(Facade)模式--医院,保安系统实例
门面(Facade)模式 http://www.cnblogs.com/zhenyulu/articles/55992.html
- 深入浅出—JAVA(7)
7.继承与多态 遵守合约:覆盖的规则 方法的重载
- 在 Windows Azure 网站 (WAWS) 上对 Orchard CMS 使用 Azure 缓存
编辑人员注释: 本文章由 Windows Azure 网站团队的项目经理 Sunitha Muthukrishna 撰写. 如果您当前的 OrchardCMS 网站在 Windows Azure 网站 ...
- ios7下二维码功能的实现
苹果公司升级到IOS7后自己的PassBook自带二维码扫描功能,所以现在使用二维码功能不需要在借助第三方库了 使用前请先导入AVFoundation.frameWork // // YHQView ...
- 《Clean Code》重点内容总结
读书笔记请见Github博客:http://wuxichen.github.io/Myblog/reading/2014/10/06/CleanCode.html
- 解决warning: incompatible implicit declaration of built-in function 'malloc'
因为代码中使用了malloc函数和字符串函数.编译时出现错误 warning: incompatible implicit declaration of built-in function 'mall ...
- CoinChange
题目 题目:CoinChange 有面额不等的coins,数量无限,要求以最少的\(coins\)凑齐所需要的\(amount\). 若能,返回所需的最少coins的数量,若不能,返回-1. Exam ...
- BZOJ 1036: [ZJOI2008]树的统计Count( 树链剖分 )
树链剖分... 不知道为什么跑这么慢 = = 调了一节课啊跪.. ------------------------------------------------------------------- ...
- Codeforces 484A - Bits 二进制找1
这题可以根据l, r 在二进制下的长度进行分类. l 的长度小于 r 的时候,有两种可能,一种是r 在二进制下是 1* 这种样子,故答案取 r : 一种是取答案为 (1LL << (r ...