【问题标题】:Cannot get psycopg2 to work, but installed correctly. Mac OS无法使 psycopg2 工作,但安装正确。苹果系统
【发布时间】:2017-02-21 10:46:41
【问题描述】:

我正在尝试在 Mac 上本地使用 psycopg2。它安装得很好,至少没有错误,但是当我导入它时会收到错误消息。

我已经看到了几十个具有类似问题和解决方案的线程,这些线程和解决方案差异很大,对于这样一个常见的模块来说似乎太过分了。

谁能帮忙?

Last login: Wed Oct 12 15:47:24 on console
Gurmokhs-MBP:~ Gurmokh$ pip install psycopg2
Requirement already satisfied (use --upgrade to upgrade): psycopg2 in     /Library/Python/2.7/site-packages
Gurmokhs-MBP:~ Gurmokh$ python
Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec  5 2015, 12:54:16) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import psycopg2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File     "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-    packages/psycopg2-2.6.2-py2.7-macosx-10.6-intel.egg/psycopg2/__init__.py",     line 50, in <module>
    from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME,    ROWID
ImportError:     dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site    -packages/psycopg2-2.6.2-py2.7-macosx-10.6-    intel.egg/psycopg2/_psycopg.so, 2): Library not loaded: libssl.1.0.0.dylib
  Referenced from:     /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-    packages/psycopg2-2.6.2-py2.7-macosx-10.6-intel.egg/psycopg2/_psycopg.so
  Reason: image not found
>>> ^D
Gurmokhs-MBP:~ Gurmokh$ 

我可以看到一些副本从不同的应用程序中浮动。 我假设我可以复制其中之一。上面的消息告诉我什么在引用这个文件,但他们没有告诉我他们希望在哪里找到它。如果我知道它应该去哪里,我会试试这个。

bash-3.2# find . -name "libssl.1.0.0.dylib"
./Library/Application Support/Fitbit Connect/libssl.1.0.0.dylib
./Library/PostgreSQL/9.5/lib/libssl.1.0.0.dylib
./Library/PostgreSQL/9.5/pgAdmin3.app/Contents/Frameworks/libssl.1.0.0.dylib
./Users/Gurmokh/.Trash/Navicat for PostgreSQL.app/Contents/Frameworks/libssl.1.0.0.dylib

【问题讨论】:

  • 你能谈谈你尝试过的东西吗?实际上,您需要将 libssl.1.0.0.dylib 放在可以找到的位置。
  • 已编辑以显示一些尝试理解问题和我所做的事情。
  • 感觉就像我在黑暗中刺伤。我已经尝试过stackoverflow.com/questions/27264574/…mithun.co/hacks/… 的方法,似乎没有任何效果。它让我发疯。
  • 尝试另一个 Python 发行版,例如。蟒蛇;根据我的经验,依赖 Mac OS 附带的 Python 发行版通常是个坏主意。
  • 您是否将 DYLD_FALLBACK_LIBRARY_PATH 设置为 ./Library/PostgreSQL/9.5/lib 或只是粘贴到 Anaconda 链接中?我会第二次@maxymoo 关于不使用内置 Python 的评论——但你不一定需要 Anaconda,你可以从 python.org 安装 Python。或者,老实说,使用 Docker 之类的东西——所有这些令人头疼的问题都消失了。虽然那时你必须学习一个新工具,但在我看来这是值得的......

标签: python macos psycopg2


【解决方案1】:

谢谢各位。

@maxymoo 我同意你的建议。我已经安装了anaconda2。安装更新了我的路径以包含 /anaconda/bin。

然后使用导航器我安装了 pyscopg2。现在我可以在 shebang 中使用它,我的脚本执行得很好,我可以导入这个模块。

Gurmokhs-MBP:rest Gurmokh$ python
Python 2.7.12 |Anaconda 4.2.0 (x86_64)| (default, Jul  2 2016, 17:43:17) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
>>> import psycopg2
if psycopg2.connect("dbname='postgres' user='postgres' host='localhost'"):
...     print "connection made"
... 
connection made
>>> 

【讨论】:

  • 一些模块不存在,我期望 urllib, oauth。我不得不使用 conda install 安装它们。在 anaconda 云网站上找到的说明。
猜你喜欢
  • 2020-10-11
  • 2019-09-06
  • 1970-01-01
  • 2012-08-19
  • 1970-01-01
  • 2011-12-18
  • 2017-10-05
  • 2015-02-05
  • 2015-03-26
相关资源
最近更新 更多