跟着The Django Book的节奏今天学到了第五章-模型;结果就只是在Mac环境下为Python安装MySQLdb库时遇到的诸多问题。花了四个多小时终于把问题解决了,而且成功建立了个人第一个django app的第一个database 和 table。趁如今还有点记忆,把中途遇到的各类问题汇总以下,我相信未来确定仍是会有不少人遇到。html
在Mac下安装和配置MySQL 应该是很简单的操做,不过我还真遇到一点小问题,教程能够移步看这篇文章 >>> http://www.cnblogs.com/macro-cheng/archive/2011/10/25/mysql-001.htmlpython
在选择MySQL版本下载的时候,你的Mac应该是64位的。若是不那么肯定,能够『关于本机>更多信息>系统报告>软件>偏好设置面板:64位,是』mysql
安装Python的MySQLdb库 我用的是比较笨的方法,小白能够参考 下载地址:http://sourceforge.net/projects/mysql-python/files/git
而后,痛苦的节奏就开始了!!!github
解压缩到桌面MySQLdb/sql
终端进入MySQLdb目录macos
cd desktop/MySQLdb
执行如下指令django
python setup.py build
若是你跟我同样不幸的话,你会遇到跟我同样的报错xcode
sh: mysql_config: command not found Traceback (most recent call last): File "setup.py", line 18, in <module> metadata, options = get_config() File "/Users/daodao/Desktop/Mysql/setup_posix.py", line 43, in get_config libs = mysql_config("libs_r") File "/Users/daodao/Desktop/Mysql/setup_posix.py", line 25, in mysql_config raise EnvironmentError("%s not found" % (mysql_config.path,)) EnvironmentError: mysql_config not found
仔细看下报错信息中的关键词,这个时候,你须要在修改MySQLdb目录下面的setup_posix.py的配置信息bash
mysql_config.path = "mysql_config"
修改成我本机的mysqlconfig配置路径,个人mysqlconfig路径是/usr/local/mysql-5.6.14-osx10.7-x8664/bin/mysqlconfig,你能够查看下你本身的路径,目录结构应该是同样的。不知道怎么打开这个/usr?很简单——打开一个finder,『前往>前往服务器:usr/』,而后你本身找下 :
mysql_config.path = "/usr/local/mysql-5.6.14-osx10.7-x86_64/bin/mysql_config"
修改config后,我想应该没问题了把,因此继续一开始的操做,执行setup.py build。好吧,而后仍是继续报错,此次跟Xcode相关(我曾经安装过Xcode,后来删了,因此本机没有Xcode开发环境),报错信息是:
xcrun: error: active developer path ("/Applications/Xcode.app/Contents/Developer") does not exist, use xcode-select to change error: command '/usr/bin/clang' failed with exit status 1
郁闷了,我在Python下面装MySQL,跟Xcode有毛关系?!前面一些问题网上其实都还比较容易找到解决办法,可是这个问题,网上死活也找不到!最后无奈抱着试一试的想法,从新下载安装了下Xcode,继续尝试setup.py build操做。
好吧,问题解决了!不是特别清楚什么缘由,可是听网上有人说好像是由于Python MySQL环境须要安装GCC,而Xcode里面的command_line_tools
支持GCC。你能够不去管Xcode,本身安装GGC的环境,我如今还没研究啥叫GGC,先无论了。
——————————11月3日更新————————————
commandlinetools 包能够直接从苹果服务器上下载到,可是你须要有Apple开发者帐号,没有?能够看这里:http://railsapps.github.io/xcode-command-line-tools.html
我稍有洁癖,从新执行一遍吧,顺便加深下对操做的理解。
—————————————————————————————————
python setup.py clean python setup.py build sudo python setup.py install
执行到这里都没有再报错了。可是问题还在继续,终端进入Python测试效果
import MySQLdb
仍是不怎么顺利。。。报错:
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.6-intel.egg/MySQLdb/__init__.py", line 19, in <module> import _mysql ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.6-intel.egg/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.6-intel.egg/_mysql.so Reason: image not found
网上找了一圈,问题解决方法是:
用vi指令在 User/打开 .bash_profile 文件,这是一个隐藏文件。
vi .bash_profile
进入编辑状态,在最后添加
export DYLD_LIBRARY_PATH="/usr/local/mysql/lib"
:wq 保存退出终端
从新切换到Python开发环境下, import MySQLdb
返回正常。问题搞定了,可是暂时还不明白什么原理。先留着,之后搞懂了以后再回来更新文章。
继续在终端中输入 mysql -uroot
反馈:-bash: mysql: command not found
。这个问题我大概知道,是因为系统默认会查找/usr/bin下的命令,若是这个命令不在这个目录下,咱们须要作的就是映射一个连接到/usr/bin目录下,至关于创建一个连接文件。 首先得知道mysql命令或mysqladmin命令的完整路径,好比mysql的路径是:/usr/local/mysql/bin/mysql,而后执行命令:
ln -s /usr/local/mysql/bin/mysql /usr/bin
O了!后面的操做一切顺利!