跟着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了!後面的操做一切順利!