web-dev-qa-db-ja.com

Mac OS(Yosemite)でのpsycopg2の使用に関する問題

現在、Eclipse内でpythonを使用するためにpsycopg2をインストールしています。

私は多くの問題を見つけています:

  1. 最初の問題Sudo pip3.4 install psycopg2は機能しておらず、次のメッセージが表示されています

エラー:pg_config実行可能ファイルが見つかりません。

修正済み:export PATH=/Library/PostgreSQL/9.4/bin/:"$PATH”

  1. 私のプロジェクトにpsycopg2をインポートすると、次のようになります:

ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/psycopg2/_psycopg.soライブラリlibssl.1.0.0.dylibライブラリlibcrypto.1.0.0.dylib

修正済み:Sudo ln -s /Library/PostgreSQL/9.4/lib/libssl.1.0.0.dylib /usr/lib Sudo ln -s /Library/PostgreSQL/9.4/lib/libcrypto.1.0.0.dylib /usr/lib

  1. 今私は入手しています:

ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/psycopg2/_psycopg.so、2):シンボルが見つかりません:_lo_lseek64参照元:/ Library/Frameworks/Python .framework/Versions/3.4/lib/python3.4/site-packages/psycopg2/_psycopg.so予想される場所:/usr/lib/libpq.5.dylib /Library/Frameworks/Python.framework/Versions/3.4/lib /python3.4/site-packages/psycopg2/_psycopg.so

手伝って頂けますか?

45
Benja Garrido

バージョンが古すぎるため、/ usr/lib/libpq.5.dylibライブラリを置き換える必要があります。
この問題に対する私の解決策は次のとおりです。

$ Sudo mv /usr/lib/libpq.5.dylib /usr/lib/libpq.5.dylib.old  
$ Sudo ln -s /Library/PostgreSQL/9.4/lib/libpq.5.dylib /usr/lib
75
KungFuLucky7

PostgresAppを使用している場合、次の2つのコマンドを実行する必要があります。

Sudo mv /usr/lib/libpq.5.dylib /usr/lib/libpq.5.dylib.old
Sudo ln -s /Applications/Postgres.app/Contents/Versions/9.4/lib/libpq.5.dylib /usr/lib
28
Samer

以下は、El CapitanでOS X El Capitanシステム整合性保護(SIP)を回避するために再起動する必要のない修正です。

brew unlink postgresql && brew link postgresql
brew link --overwrite postgresql

H/T Farhan Ahmad

4
Dusk

ヨセミテ、postgres.app、Djangoを使用しています。これにより、psycopg2が適切にロードされましたが、1つの違いは、libpq.5.dylibファイルが/Applications/Postgres.app/Contents/Versions/9.4/libにあることです。

したがって、私の2行目はSudo ln -s /Applications/Postgres.app/Contents/Versions/9.4/lib/libpq.5.dylib /usr/libでした

4
ksmskm

@ KungFuLucky7の答えを使用できないエルキャピタンの皆さんのために-問題を修正するために以下を使用しました(必要に応じてパスを調整してください)。

Sudo install_name_tool -change libpq.5.dylib /Library/PostgreSQL/9.5/lib/libpq.5.dylib /usr/local/lib/python2.7/site-packages/psycopg2/_psycopg.so
2
Steve Forbes

エルキャピタンでは、@ Forbzeと同じソリューションを使用しましたが、さらに2つのコマンドを次のように使用しました。

Sudo install_name_tool -change libpq.5.dylib /Library/PostgreSQL/9.3/lib/libpq.5.dylib  /Library/Python/2.7/site-packages/psycopg2/_psycopg.so
Sudo install_name_tool -change libssl.1.0.0.dylib /Library/PostgreSQL/9.3/lib/libssl.1.0.0.dylib  /Library/Python/2.7/site-packages/psycopg2/_psycopg.so
Sudo install_name_tool -change libcrypto.1.0.0.dylib /Library/PostgreSQL/9.3/lib/libcrypto.1.0.0.dylib  /Library/Python/2.7/site-packages/psycopg2/_psycopg.so

完璧に機能します!

1
Hung Dam

まあ、私は私の解決策を提供したいのですが、問題はcのバージョンに関連しています。だから、私はちょうど入力しました:

CFLAGS='-std=c99' pip install psycopg2==2.6.1
0
carlos.rivera