mysql pydev_pydev-python 链接mysql数据库(mac系统)
在mac os上安裝MySQLdb,遇到了非常多問題,總結一下:
首先。假設用sudo easy_install mysql-python命令安裝,基本上不會成功的,原因有兩個:一是找不到mysql_config位置,二是如今基本上安裝的是64位的系統(tǒng)和64位的python,和默認的32位安裝包沖突。
解壓后,改動site.cfg,當中凝視了一行:
mysql_config?=?/usr/local/mysql/bin/mysql_config
把凝視去掉。路徑改為你安裝的mysql相應的位置。
然后命令行進入解壓的MySQL-python-1.2.4b4文件夾,運行sudo python setup.py install進行安裝。
安裝過程中又遇到非常多問題,然后在網上找到了兩個解決方式。可是這樣安裝還是會有問題,由于我使用eclipse+pydev的開發(fā)環(huán)境。這個環(huán)境還是不能使用MySQLdb。可是用這兩個解決方法,能夠在命令行下 import MySQLdb了,所以也記下來看看將來有沒更完美的解決方法。
第一個問題是安裝過程提示:Library not loaded: libmysqlclient.18.dylib
依據http://blog.sina.com.cn/s/blog_68f3bc280100supn.html。要么在環(huán)境變量加入export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:/usr/local/mysql/lib/" 要么就軟鏈接,在命令行里運行:
sudo?ln?-s?/usr/local/mysql/lib/libmysqlclient.18.dylib?/usr/lib/libmysqlclient.18.dylib
第二個問題是安裝過程提示:no suitable image found.Did find:/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
在/Users/你的username/ 文件夾下編輯或加入隱藏文件.bash_profile。加入環(huán)境變量:
PATH="/usr/local/mysql/bin:${PATH}"
export?PATH
export?DYLD_LIBRARY_PATH=/usr/local/mysql/lib/
export?VERSIONER_PYTHON_PREFER_64_BIT=yes
export?VERSIONER_PYTHON_PREFER_32_BIT=yes
然后再在命令行進入解壓的MySQL-python-1.2.4b4文件夾,輸入:
sudo?python?setup.py?build
sudo?python?setup.py?install
又一次編譯和運行安裝。
這樣以后在命令行下運行import MySQLdb就沒有問題
2.pydev中的配置
前提是完畢了上面的步驟
首先要打開preference-pydev-interpreter-python中,點擊autoconfig勾選上有mysql的那個包,又一次導入。
這時候加入importMySQLdb盡管不報錯。可是一旦運行,就會報錯:
Library not loaded: libmysqlclient.18.dylib ? Referenced from: /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so
解決方式是在shell里運行(注意改路徑):
sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib? /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so
3.測試
在shell里輸入下面代碼測試下是否鏈接成功
import MySQLdb
try:
conn=MySQLdb.connect(host='localhost',user='root',passwd='root',db='test',port=3306)
cur=conn.cursor()
cur.execute('select * from mytable')
results=cur.fetchall()
for r in results:
print r
cur.close()
conn.close()
except MySQLdb.Error,e:
print "Mysql Error %d: %s" % (e.args[0], e.args[1])
輸出結果。數據庫查詢成功:
總結
以上是生活随笔為你收集整理的mysql pydev_pydev-python 链接mysql数据库(mac系统)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 优达学城 UdaCity 纳米学位
- 下一篇: RTF文件格式
