2013-11-04 37 views
2

我試圖讓Django在OS X Mavericks上運行,並且我遇到了一堆錯誤,最新的方式是當運行python manage.py runserver以查看是否所有內容作品中,我得到這個錯誤,我相信意味着錯過的libssl:Django無法在OS X Mavericks上找到libssl

ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/psycopg2/_psycopg.so, 2): Library not loaded: @loader_path/../lib/libssl.1.0.0.dylib Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/psycopg2/_psycopg.so Reason: image not found

我已經升級的Python 2.7.6與處理一些小牛的怪癖的補丁。

任何想法?

完全回溯:

Unhandled exception in thread started by > Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 93, in inner_run self.validate(display_num_errors=True) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/base.py", line 280, in validate num_errors = get_validation_errors(s, app) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/validation.py", line 28, in get_validation_errors from django.db import models, connection File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/init.py", line 40, in backend = load_backend(connection.settings_dict['ENGINE']) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/init.py", line 34, in getattr return getattr(connections[DEFAULT_DB_ALIAS], item) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/utils.py", line 93, in getitem backend = load_backend(db['ENGINE']) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/utils.py", line 27, in load_backend return import_module('.base', backend_name) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module import(name) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 14, in from django.db.backends.postgresql_psycopg2.creation import DatabaseCreation File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/creation.py", line 1, in import psycopg2.extensions File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/psycopg2/init.py", line 50, in from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/psycopg2/_psycopg.so, 2): Library not loaded: @loader_path/../lib/libssl.1.0.0.dylib Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/psycopg2/_psycopg.so Reason: image not found

回答

2

psycopg2丟失。適用於Python的Postgresql數據庫適配器。

您需要重新安裝Postgresql。您正在使用Mac,因此請使用brew進行安裝。

brew install postgresql 

如果brew輸出已經安裝,請將其卸載並重新安裝。

+1

我已經安裝了postgres.app(www.postgresapp.com),我卸載了那一個,並通過Homebrew重新安裝,沒有用。同樣的錯誤。 –

+6

如果你這樣定義環境變量:'export DYLD_LIBRARY_PATH =/Library/PostgreSQL/9。*/lib'用9.g替換postgresql當前版本 – moenad

+0

Yay,定義環境變量的作品!非常感謝,爲此奮鬥了幾個小時。 –

2

它似乎是libssl.1.0.0.dylib缺失。小牛隊以libssl 0.9.8表示。你需要通過自制軟件安裝libssl。

如果loaderpath指向/usr/lib/,則還需要將libssl從/usr/local/Cell/openssl/lib/註釋到/usr/lib

+0

對於更一般的答案(而不是_Homebrew_特定)請參閱[這是關於Python和PostgreSQL的SO問題](http://stackoverflow.com/questions/11538249/python-pip-install-psycopg2-install-error)當然是 –

1

安裝在我的筆記本電腦OSX全PostgreSQL服務器困擾我。卸載是笨重的,現在你有一個漂亮的搖滾數據庫服務器只是坐在圖書館沒有使用。

我知道其他人發佈反對使用Postgres.app,但我喜歡它。它清潔和易於使用。關鍵是要記住它只是一個包含所有必要庫的文件夾,以便在您的OSX盒子上構建Psycopg2時提供幫助。只要確保添加的東西到您的路徑,所以你可以找到像庫:

$ PATH = $ PATH:/Applications/Postgres93.app/Contents/MacOS/bin/

(阿爾特,當然基於你安裝的Postgres.app版本。)

一旦你得到你的psycopg2編譯,你只需將Postgres.app拖放到垃圾桶中去。十分簡單。

我浪費了大量的時間與所有類型的錯誤和psycopg2兩個OSX & Linux的,所以我把這個在一起:

http://www.codychamberlain.com/posts/installing-psycopg2-on-osx/

+0

這個具體的問題你可能會設置一些符號鏈接來更新PATH到這個位置:/Applications/Postgres93.app/Contents/MacOS/lib – codychamberlain

+0

鏈接到博客文章已經死了。 – szeitlin

10

這爲我工作。

brew unlink openssl && brew link openssl --force 

這將正確地重新創建已安裝的libssl 1.0的所有鏈接。

+0

沒有爲我解決它。 :( – szeitlin

+0

它在Mac OS X El Capitan中爲我工作,謝謝!Django正在尋找openssl-1.0.0,但現在它使用openssl-1.0.2d_1(我做了一個'brew卸載openssl'和'brew install openssl'那麼) –

+0

謝謝你解決了我在El Capitan的問題,爲什麼這麼做? – oLas