Gid*_*eon 42 python database postgresql python-2.7 postgresql-9.3
当我尝试运行命令时:
import psycopg2
Run Code Online (Sandbox Code Playgroud)
我收到错误:
ImportError: dlopen(/Users/gwulfs/anaconda/lib/python2.7/site-packages/psycopg2/_psycopg.so, 2): Library not loaded: libssl.1.0.0.dylib
Referenced from: /Users/gwulfs/anaconda/lib/python2.7/site-packages/psycopg2/_psycopg.so
Reason: image not found
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经尝试brew install openssl并引用(没有运气):
psycopg2安装错误 - 未加载库:libssl.dylib
http://joshuakehn.com/2013/10/13/Postgresapp-and-psycopg2-on-OS-X.html
小智 71
而不是在系统库目录中使用符号链接,设置$DYLD_FALLBACK_LIBRARY_PATH包括anaconda库.例如:
export DYLD_FALLBACK_LIBRARY_PATH=$HOME/anaconda/lib/:$DYLD_FALLBACK_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)
Sco*_*uhl 30
编辑:有潜在危险,请先阅读评论!
请参阅下面更安全的答案:https://stackoverflow.com/a/30726895/308315
我发布它后大约一个小时就遇到了这个问题并且刚想出来了.我正在使用Mac OS X Yosemite,Python 2.7和Postgresql应用程序.
似乎默认情况下设置了一个不工作的符号链接(或者我在故障排除时引入了它),要修复它首先删除不正确的链接:
$ sudo rm /usr/lib/libssl.1.0.0.dylib
$ sudo rm /usr/lib/libcrypto.1.0.0.dylib
Run Code Online (Sandbox Code Playgroud)
然后重新链接它们(用您的Mac用户名替换YOURUSERNAME.我发现使用tab完成每个步骤,确认目录是有帮助的):
$ sudo ln -s /Users/YOURUSERNAME/anaconda/lib/libssl.1.0.0.dylib /usr/lib
$ sudo ln -s /Users/YOURUSERNAME/anaconda/lib/libcrypto.1.0.0.dylib /usr/lib
Run Code Online (Sandbox Code Playgroud)
我相信其他解决方案对您不起作用,因为您的版本是在anaconda中.
ali*_*dry 22
将我的头靠在墙上几个小时后,这两种解决方案保证可以正常工作:
选项1.这解决了我们的问题,而没有搞乱环境变量.在shell中运行:
brew install --upgrade openssl
brew unlink openssl && brew link openssl --force
Run Code Online (Sandbox Code Playgroud)
繁荣!这会升级/usr/localfor libssl和中的符号链接libcrypto.现在import psycopg2就像一个魅力.
选项2.如果由于某种原因您想要维护当前的符号链接usr/local,请在shell中运行以下命令:
export DYLD_FALLBACK_LIBRARY_PATH=$HOME/anaconda/lib/:$DYLD_FALLBACK_LIBRARY_PATH
只需确保将$HOME/anaconda/lib以上替换为实际的lib路径.就我而言,这是$HOME/miniconda2/envs/ali/lib.
这只会为你目前所在的壳/ bash命令工作.要使更改持久,添加export语句您~/.bash_profile或~/.bashrc文件.
思考: IMO#1是处理这个问题的正确方法,但我留下#2以防有些人喜欢使用环境变量而不是修复符号链接(例如,如果他们的软件依赖于旧的openssl文件版本).
NST*_*STJ 17
在Homebrew不允许我强制链接后openssl,以下工作正常:
pip install --global-option=build_ext \
--global-option="-I/usr/local/opt/openssl/include" \
--global-option="-L/usr/local/opt/openssl/lib" psycopg2
Run Code Online (Sandbox Code Playgroud)
(此安装virtualenv在macOS上成功完成)
小智 12
conda安装psycopg适合我.它更新以下包以下包将更新:
conda: 3.19.1-py27_0 --> 4.0.5-py27_0
openssl: 1.0.2f-0 --> 1.0.2g-0
pip: 8.0.2-py27_0 --> 8.1.0-py27_0
setuptools: 19.6.2-py27_0 --> 20.2.2-py27_0
wheel: 0.26.0-py27_1 --> 0.29.0-py27_0
Run Code Online (Sandbox Code Playgroud)
小智 9
我在 Mac 上遇到了这个问题,尝试 ln -s 给了我 ln: /usr/lib/libssl.1.0.0.dylib: Operation not allowed 我不想弄乱我的系统。相反,对我有用的是简单地安装 psycopg2-binary : pip install psycopg2-binary
这个安装了psycopg2-binary-2.8.3版本
关于XL上面的答案,当我已经使用pip时,我不想使用Anaconda,所以我只是给了它为我工作的Postgres库的路径(我在Mac OS 10.10上使用PostgreSQL.app) )...
export DYLD_FALLBACK_LIBRARY_PATH=/Library/PostgreSQL/9.5/lib:$DYLD_FALLBACK_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32509 次 |
| 最近记录: |