【问题标题】:Django can't find libssl on OS X MavericksDjango 在 OS X Mavericks 上找不到 libssl
【发布时间】:2013-11-15 01:30:10
【问题描述】:

我正在尝试让 Django 在 OS X Mavericks 上运行,但在此过程中遇到了一堆错误,最新的方法是当 runpython manage.py runserver 查看是否一切正常时,我收到了这个错误,它我相信意味着它错过了 libssl:

ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/psycopg2/_psycopg.so, 2): 库未加载:@loader_path/../lib /libssl.1.0.0.dylib 引用自:/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/psycopg2/_psycopg.so 原因:找不到图像

我已经将 Python 升级到 2.7.6,并带有处理 Mavericks 一些怪癖的补丁。

有什么想法吗?

完整的追溯:

由 > 启动的线程中未处理的异常 回溯(最近一次通话最后): 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/commands/runserver.py”,第 93 行,inner_run self.validate(display_num_errors=True) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/base.py”,第 280 行,验证中 num_errors = get_validation_errors(s, app) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/validation.py”,第 28 行,在 get_validation_errors 从 django.db 导入模型,连接 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/init.py”,第 40 行,在 后端 = load_backend(connection.settings_dict['ENGINE']) getattrinit.py”,第 34 行/强> 返回getattr(连接[DEFAULT_DB_ALIAS],项目) getitem 中的文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/utils.py”,第 93 行 后端 = load_backend(db['ENGINE']) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/utils.py”,第 27 行,在 load_backend return import_module('.base', backend_name) import_module 中的文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/utils/importlib.py”,第 35 行 进口(名称) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py”,第 14 行,在 从 django.db.backends.postgresql_psycopg2.creation 导入 DatabaseCreation 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/creation.py”,第 1 行,在 导入 psycopg2.extensions 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/psycopg2/init.py”,第 50 行,在 从 psycopg2._psycopg 导入 BINARY、NUMBER、STRING、DATETIME、ROWID ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/psycopg2/_psycopg.so,2):未加载库:@loader_path/../lib/libssl。 1.0.0.dylib 引用自:/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/psycopg2/_psycopg.so 原因:找不到图片

【问题讨论】:

    标签: python django macos postgresql


    【解决方案1】:

    这对我有用。

    brew unlink openssl && brew link openssl --force
    

    这将正确地重新创建所有已安装的 libssl 1.0 链接。

    【讨论】:

    • 没有为我修复它。 :(
    • 它在 Mac OS X El Capitan 下对我有用,谢谢! Django 一直在寻找 openssl-1.0.0,但现在它使用 openssl-1.0.2d_1(我之前做过 brew uninstall opensslbrew install openssl
    • 感谢这解决了我在 El Capitan 上的问题。为什么会这样?
    • 这不再适用于最近的 Homebrew,而是你得到 Warning: Refusing to link: openssl。而是使用CFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip ...
    • @DanielleMadeley 你能提供完整的解决方案吗?似乎该命令还有更多内容。
    【解决方案2】:

    在我的 OSX 笔记本电脑上安装完整的 PostgreSQL 服务器让我很困扰。卸载很笨重,现在你有一个非常摇摆不定的数据库服务器,只是为了库而未使用。

    我知道其他人反对使用 Postgres.app,但我喜欢它。它干净且易于使用。关键是要记住,它只是一个包含所有必要库的文件夹,以帮助在 OSX 机器上构建 Psycopg2。只需确保在您的路径中添加一些内容,以便您可以找到以下库:

    $ PATH=$PATH:/Applications/Postgres93.app/Contents/MacOS/bin/

    (根据您安装的 Postgres.app 版本进行更改。)

    一旦你编译好你的 psycopg2,你只需将 Postgres.app 拖到垃圾箱,它就消失了。轻松愉快。

    我在 OSX 和 Linux 上的各种错误和 psycopg2 上浪费了很多时间,所以我把它放在一起:

    http://www.codychamberlain.com/posts/installing-psycopg2-on-osx/

    【讨论】:

    • 当然对于这个特定的问题,您可能会设置一些符号链接以将 PATH 更新到此位置:/Applications/Postgres93.app/Contents/MacOS/lib
    • 博客文章的链接已失效。
    【解决方案3】:

    这个问题发生在我身上,因为我使用的是 posqgressapp。这可能与沙盒有关。

    删除 posqgressapp 并使用 brew 安装 postgress 解决了我的问题。

    使用 HomeBrew 安装 Postgress:
    http://www.moncefbelyamani.com/how-to-install-postgresql-on-a-mac-with-homebrew-and-lunchy/

    小牛无法打开psql:
    https://github.com/PostgresApp/PostgresApp/issues/137

    【讨论】:

      【解决方案4】:

      看来是libssl.1.0.0.dylib 不见了。小牛队使用libssl 0.9.8。您需要通过 homebrew 安装 libssl。

      如果 loaderpath 指向 /usr/lib/,您还需要将 libssl 从 /usr/local/Cell/openssl/lib/ 符号链接到 /usr/lib

      【讨论】:

      【解决方案5】:

      psycopg2 不见了。用于 Python 的 Postgresql 数据库适配器。

      您需要重新安装 Postgresql。您使用的是 Mac,因此请使用 brew 安装它。

      brew install postgresql
      

      如果 brew 输出它已安装,请将其卸载并重新安装。

      【讨论】:

      • 我已经安装了 postgres.app (www.postgresapp.com),我卸载了那个并通过 Homebrew 重新安装,但无济于事。同样的错误。
      • 如果你像这样定义环境变量怎么办:export DYLD_LIBRARY_PATH=/Library/PostgreSQL/9.*/lib replace 9.* with the postgresql current version
      • 是的,定义环境变量有效!非常感谢,为此苦苦挣扎了几个小时。
      猜你喜欢
      • 2015-06-05
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2014-04-09
      • 2014-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多