2014-12-27 138 views
1

我剛剛在我的10.10.1 MAC上安裝了MySQL,我試圖將它鏈接到Python。但是,當我試圖導入包時,出現此錯誤。Python 2.7和MySQLDB:找不到圖像(OSX)

import MySQLdb as mdb 
    File "build/bdist.macosx-10.5-x86_64/egg/MySQLdb/__init__.py", line 19, in <module> 

    File "build/bdist.macosx-10.5-x86_64/egg/_mysql.py", line 7, in <module> 
    File "build/bdist.macosx-10.5-x86_64/egg/_mysql.py", line 6, in __bootstrap__ 
ImportError: dlopen(/Users/ME/.python-eggs/MySQL_python-1.2.5-py2.7-macosx-10.5-x86_64.egg-tmp/_mysql.so, 2): Library not loaded: libssl.1.0.0.dylib 
    Referenced from: /Users/ME/.python-eggs/MySQL_python-1.2.5-py2.7-macosx-10.5-x86_64.egg-tmp/_mysql.so 
    Reason: image not found 
[Finished in 0.2s with exit code 1] 

我不知道什麼「圖像未找到」的意思,或如何解決這個問題。

的MySQL連接到後臺的服務器,我通過終端窗口使用安裝軟件包:easy_install MySQL-python

在哪裏出了問題有什麼建議?

回答

1

的解決問題的方法可以在該鏈路Python: MySQLdb and "Library not loaded: libmysqlclient.16.dylib"

_mysql.so指libmysqlclient.16.dylib被發現。也就是說,作爲Python和MySQL客戶端庫_mysql.so之間橋樑的共享庫引用了MySQL客戶端庫的動態庫,並且該庫由於某種原因無法加載。

問題需要回答:

  • 是否有libmysqlclient.16.dylib任何地方你的系統?如果沒有,您需要安裝MySQL客戶端軟件。

  • 如果是這樣,那麼在DYLD_LIBRARY_PATH設置中是否包含該庫的目錄?如果不是,請嘗試添加它。

  • 如果是這樣,你必須確保libmysqlclient.16.dylib文件沒有損壞。我的副本安裝在/opt/local/lib/mysql5/mysql/libmysqlclient.16.dylib中,由MacPorts提供,具有MD5簽名c79ee91af08057dfc269ee212915801a,大小爲1,462,376字節。你的副本是什麼樣的?
+0

謝謝!我會看看這個,回答你的問題。 – Chef1075 2014-12-28 14:35:24

1

檢查您_mysql.so被鏈接到:

otool -L /Library/Python/2.7/site-packages/_mysql.so 

在我來說,我構建的MySQL源/tmp/,一旦 tmp清理我的dylib就走了。我從來沒有重新鏈接到 可靠的位置,如/Applications/MAMP/Library/lib,其中 我的mysql庫生活(因爲我複製它們在這裏後)。

等我回去和重建的一切,並確保運行命令 更新到正確的dylib包鏈接:

sudo install_name_tool -change <temp file location>/mysql-5.5.29/libmysql/libmysqlclient.18.dylib /Applications/MAMP/Library//lib/libmysqlclient.18.dylib /Library/Python/2.7/site-packages/_mysql.so 

我也跟着安裝在這裏找到: http://dreamconception.com/tech/how-to-install-mysqldb-mysql-python-on-mamp/

注意:我不需要執行有關更改configure.cmake 文件的步驟。當我看着configure.cmake文件對我來說很有意義,所以我按原樣運行了 ,它工作正常。

還要注意你的不同libmysqlclient.<num>.dylib可能是東西,所以 做一個find . -name "libmysqlclient.*.dylib"得到重新運行otool命令,並看到該鏈接被更新正確的

現在。

引用(和其他解決方案):