大圖,問題是無法找到所需的庫。您可以使用Apple的open source compiler tools,otool
和install_name_tool
更改psycopg2
尋找libssl
的位置。這些附帶OS X,手冊頁可用於man <command>
。
變化到在錯誤消息中提到的psycopg2
模塊的目錄。一旦有:
$ otool -L _psycopg.so
...
@executable_path/../lib/libssl.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
...
此列出了圖書館_psycopg2.so
將尋找。您可以更改它會看起來與install_name_tool
:
$ install_name_tool -change @executable_path/../lib/libssl.1.0.0.dylib /usr/local/opt/openssl/lib/libssl.1.0.0.dylib _psycopg.so
你需要調整,你有libssl.1.0.0.dylib
,當然。我給出的例子是默認的自制程序路徑,但是您可以從Anaconda和/或PostgreSQL應用程序包獲得它。 (brew install openssl
,如果你還沒有的話)。你也可能需要重複libcrypto。
執行這一變化可能取決於_psycopg2.so
是如何構建的失敗。如果發生這種情況,您可以使用自定義庫路徑自己構建模塊,但是我不會介入。
這種方法具有可更窄,並因此較不危險,比方法的優點既可以通過ln -s
聯的libssl 1.0.0成dyld
的搜索路徑(或設置DYLD_*
環境變量(在其他的答案給出這裏) )。 (請參閱pair的discussions和some code以瞭解有關dyld
到man dyld
的更多信息。)它的缺點是需要對psycopg2
的每個副本重複。選擇你自己的冒險。
免責聲明:本答案的大部分內容來自於我在一天之內拼湊出的知識。我不是專家。
是的,它的安裝。我正在運行pyenv,可能會影響事情嗎? – 2013-05-06 22:05:57
我不知道,我從來沒有嘗試過pyenv – Ari 2013-05-06 22:10:52