首页 文章

在Mac OS(Yosemite)上使用psycopg2的问题

提问于
浏览
44

目前我正在使用python在eclipse中安装psycopg2 .

我发现了很多问题:

  • 第一个问题 sudo pip3.4 install psycopg2 无效,它显示以下消息

错误:找不到pg_config可执行文件 .

固定: export PATH=/Library/PostgreSQL/9.4/bin/:"$PATH”

  • 当我在我的项目中导入psycopg2时,我会:

ImportError:dlopen(/ Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/psycopg2/_psycopg.so Library libssl.1.0.0.dylib Library 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

  • 现在我获得:

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期望:/ library / Frame / Prameworks / Framework / V3 /中的/usr/lib/libpq.5.dylib LIB / python3.4 /站点包/ psycopg2 / _psycopg.so

你能帮助我吗?

7 回答

  • 0

    您需要替换/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
    
  • 27

    如果您使用的是PostgresApp,则需要运行以下两个命令:

    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
    
  • 4

    我正在使用优胜美地,postgres.app和django . 这让psycopg2正确加载给我,但一个区别是我的 libpq.5.dylib 文件在 /Applications/Postgres.app/Contents/Versions/9.4/lib .

    因此,我的第二行是 sudo ln -s /Applications/Postgres.app/Contents/Versions/9.4/lib/libpq.5.dylib /usr/lib

  • 3

    这是一个在El Capitan上工作的修复程序,它不需要重新启动来解决OS X El Capitan系统完整性保护(SIP):

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

    H/T Farhan Ahmad

  • 1

    在El Capitan中,我使用与@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
    

    它完美地运作!

  • 0

    好吧,我想提出我的解决方案,问题与c的版本有关 . 所以,我只输入:

    CFLAGS='-std=c99' pip install psycopg2==2.6.1
    
  • 75

    对于那些不能使用@KungFuLucky7的答案的El Capitan的人 - 我使用以下方法来解决问题(根据需要调整路径以匹配你的) .

    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
    

相关问题