Python 未加载导入psycopg2库:libssl.1.0.0.dylib
当我尝试运行该命令时:Python 未加载导入psycopg2库:libssl.1.0.0.dylib,python,database,postgresql,python-2.7,postgresql-9.3,Python,Database,Postgresql,Python 2.7,Postgresql 9.3,当我尝试运行该命令时: import psycopg2 我得到一个错误: 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/psycop
import psycopg2
我得到一个错误:
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
到目前为止,我已尝试brew安装openssl
,并参考了以下内容(运气不佳):
编辑:潜在危险,请先阅读评论强>
请参阅下面更安全的答案:
我在你发了一个小时后就遇到了这个问题,我刚刚想出来。我正在使用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
然后将它们重新链接到(将您的用户名替换为您的Mac用户名。我发现使用tab完成每个步骤,确认目录很有帮助):
我相信其他解决方案对您不起作用,因为您的版本在anaconda中。不要在系统库目录中使用符号链接,而是将
$DYLD\u FALLBACK\u library\u PATH
设置为包含anaconda库。例如:
export DYLD_FALLBACK_LIBRARY_PATH=$HOME/anaconda/lib/:$DYLD_FALLBACK_LIBRARY_PATH
我不得不稍微改变斯科特·布伦斯图尔的回答: 1.删除断开的符号链接:
$ sudo rm /usr/lib/libssl.1.0.0.dylib
$ sudo rm /usr/lib/libcrypto.1.0.0.dylib
$ sudo rm /usr/lib/libpq.5.dylib
执行以下操作以解决未加载的库:libssl.1.0.0.dylib错误(如果您在/usr/local/ceral目录中有openssl)
sudo cp/usr/local/ceral/openssl//lib/libcrypto.1.0.0.dylib/usr/lib
我尝试了pip安装psycopg2,它也出现了类似的问题。 然后我尝试了conda安装psycopg2,它成功了!
另外,请确保您使用的pip属于anaconda(哪个pip)与上面X.L.的答案相关,我不想在已经使用pip的情况下使用anaconda,所以我只给了它一条通往Postgres库的路径,该库对我有用(我在Mac OS 10.10上使用PostgreSQL.app)
康达安装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
在将我的头撞在墙上几个小时后,这两种解决方案肯定会奏效: 选项1。这解决了我们的问题,而不会混淆环境变量。在shell中运行此命令:
brew install --upgrade openssl
brew unlink openssl && brew link openssl --force
轰!这将升级/usr/local
中libssl
和libcrypto
的符号链接。现在,import psycopg2
就像一个魔咒一样工作
选项2。如果出于某种原因,您希望在usr/local
中维护当前符号链接,请在shell中运行以下命令:
brew install --upgrade openssl
brew unlink openssl && brew link openssl --force
export DYLD\u FALLBACK\u LIBRARY\u PATH=$HOME/anaconda/lib/:$DYLD\u FALLBACK\u LIBRARY\u PATH
只需确保用实际的lib路径替换上面的$HOME/anaconda/lib
。在我的例子中,这是$HOME/miniconda2/envs/ali/lib
这只适用于您当前所在的shell/bash会话。要使更改持久化,请将export
语句添加到~/.bash\u配置文件
或~/.bashrc
文件中
想法:IMO#1是解决此问题的正确方法,但我离开了#2,以防有些人更喜欢使用环境变量而不是修复符号链接(例如,如果他们的软件依赖于较旧的openssl文件版本).我的设置风格与OP有点不同:我在Mac上使用
Postgres.app
,在virtualenv
中使用am;但症状相似
对我来说,这是在本地将我的Postgres.app
从9.3更新到9.5之后发生的,错误清楚地显示了libssl.1.0.0的psycopg2
路径。dylib
指向旧的9.3数据目录位置(此错误中引用的image
)。在我的ENV
中添加奇怪的东西,或者删除符号链接,我不确定这样做的影响对我来说肯定是不对的。我通过卸载然后重新安装psycopg2
解决了这个问题,方法与我在工作时的方法相同-一点都不觉得很危险:
# In my virtualenv
pip uninstall psycopg2
pip install psycopg2
那我就好了 在自制软件不允许我强制使用link
openssl
之后,以下功能运行良好:
pip install --global-option=build_ext \
--global-option="-I/usr/local/opt/openssl/include" \
--global-option="-L/usr/local/opt/openssl/lib" psycopg2
(这个安装在macOS上成功地安装了一个
virtualenv
)我在Mac上遇到了这个问题,尝试ln-s让我
ln:/usr/lib/libssl.1.0.0.dylib:不允许操作
我不想弄乱我的系统。相反,对我有效的方法是简单地安装psycopg2二进制文件:
pip安装psycopg2二进制文件
在尝试了一天多之后,我找到了下面的解决方案
- brew重新安装openssl@1.0
- 禁用csrutil->google it如何禁用它,以便我们可以复制一些内容
至/usr/lib - 将libssl.1.0.0.dylib复制到/usr/lib 我做到了-sudo cp /usr/local/ceral/openssl/1.0.2s/lib/libssl.1.0.0.dylib/usr/lib
- 将libcrypto.1.0.0.dylib复制到/usr/lib 我做到了-sudo cp /usr/local/ceral/openssl/1.0.2s/lib/libcrypto.1.0.0.dylib/usr/lib
Library not loaded: libssl.1.1.dylib
我在伦敦发现了这个图书馆
/Library/PostgreSQL/11/lib
我在internet上找到了此解决方案:
export DYLD_LIBRARY_PATH=/Library/PostgreSQL/11/lib
但这并不是一个永久的解决方案。因为每当我重新启动服务器时,我都必须运行上面的命令
添加行:
导出动态库路径=/LIBRARY/PostgreSQL//lib到
~/.bash_profile对我有效的解决方案(没有)
/Library/PostgreSQL/11/lib
export DYLD_LIBRARY_PATH=/Library/PostgreSQL/11/lib
brew install --upgrade openssl
brew unlink openssl && brew link openssl --force
brew upgrade openssh
brew upgrade postgresql
pip install psycopg2-binary -t PATH
/Users/my_name/Library/Python/3.7/lib/python/site-packages
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/64555220bfbf4a25598523c2e4d3a232560eaad7/Formula/openssl.rb -f
pip install psycopg2-binary
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
pip install psycopg2 --upgrade