【问题标题】:webdriver exception in using selenium with Psycopg2, Postgres on Mac OSX Mavericks在 Mac OSX Mavericks 上使用 selenium 和 Psycopg2、Postgres 时的 webdriver 异常
【发布时间】:2014-05-11 21:32:02
【问题描述】:

我在我的 Django 应用程序中使用 Postgres。 PostgreSQL 是使用 EnterpriseDB“一键式”安装程序安装的。

我在 bash 上发出了这个命令 export $DYLD_LIBRARY_PATH=/Library/PostgreSQL/9.3/lib 以使 Postgres 工作。

我的.bashrc.bash_profile 没有更改。

python manage.py runserver works fine.

但是selenium 失败了

Python manage.py test myapp

我收到以下错误:

WebDriverException: Message: 'The browser appears to have exited before we could connect. The output was: dyld: Symbol not found: __cg_jpeg_resync_to_restart\n  Referenced from: /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib\n  Expected in: /Library/PostgreSQL/9.3/lib/libJPEG.dylib\n in /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib\n'

需要什么修复?

我看到this post 有同样的问题。但是没有发布它如何工作的解决方案。有什么建议让它发挥作用?

附注: 现在我需要发出这个命令

export $DYLD_LIBRARY_PATH=/Library/PostgreSQL/9.3/lib

每次都在终端上。我可以把它放在.bash_profile。但这会导致其他问题。

查看我的 PostgreSQL 库文件夹,我看到了:

ls /Library/PostgreSQL/9.3/
3rd_party_licenses.txt   data                     installer                pgAdmin3.app             share
Library                  doc                      lib                      pg_env.sh                stackbuilder.app
bin                      include                  license.txt              scripts                  uninstall-postgresql.app

ls /Library/PostgreSQL/9.3/lib/
libcrypto.1.0.0.dylib                  libiconv.2.dylib                       libpq.a                                libwx_macu_adv-2.8.0.dylib
libcrypto.a                            libiconv.dylib                         libpq.dylib                            libwx_macu_adv-2.8.dylib
libcrypto.dylib                        libiconv.la                            libssl.1.0.0.dylib                     libwx_macu_core-2.8.0.8.0.dylib
libecpg.6.5.dylib                      libjpeg.8.dylib                        libssl.a                               libwx_macu_core-2.8.0.dylib
libecpg.6.dylib                        libjpeg.a                              libssl.dylib                           libwx_macu_core-2.8.dylib
libecpg.a                              libjpeg.dylib                          libuuid.16.dylib                       libxml2.2.dylib
libecpg.dylib                          libjpeg.la                             libuuid.a                              libxml2.a
libecpg_compat.3.5.dylib               libpgcommon.a                          libuuid.dylib                          libxml2.dylib
libecpg_compat.3.dylib                 libpgport.a                            libuuid.la                             libxml2.la
libecpg_compat.a                       libpgtypes.3.4.dylib                   libwx_base_carbonu-2.8.0.8.0.dylib     libxslt.1.dylib
libecpg_compat.dylib                   libpgtypes.3.dylib                     libwx_base_carbonu-2.8.0.dylib         libxslt.a
libedit.0.dylib                        libpgtypes.a                           libwx_base_carbonu-2.8.dylib           libxslt.dylib
libedit.a                              libpgtypes.dylib                       libwx_base_carbonu_net-2.8.0.8.0.dylib libxslt.la
libedit.dylib                          libpng16.16.dylib                      libwx_base_carbonu_net-2.8.0.dylib     libz.1.2.8.dylib
libedit.la                             libpng16.a                             libwx_base_carbonu_net-2.8.dylib       libz.1.dylib
libexpat.1.dylib                       libpng16.dylib                         libwx_base_carbonu_xml-2.8.0.8.0.dylib libz.a
libexpat.a                             libpng16.la                            libwx_base_carbonu_xml-2.8.0.dylib     libz.dylib
libexpat.dylib                         libpq.5.6.dylib                        libwx_base_carbonu_xml-2.8.dylib       pkgconfig
libexpat.la                            libpq.5.dylib                          libwx_macu_adv-2.8.0.8.0.dylib         postgresql

【问题讨论】:

  • 看起来像 PostgreSQL 的 EnterpriseDB 包,对吧?请将此作为错误报告给他们。他们不应该将 libjpeg 打包在与 PostgreSQL 库相同的库目录中,确切原因是:这意味着您不能将 DYLD_LIBRARY_PATH 设置为使用所需的 libpq 等,而无需在路径上放置不需要的不兼容 libJPEG。您可以通过从/Library/PostgresSQL/9.3/ 中删除 PgAdmin-III、libjpeg、libtiff 等来解决此问题 - 如果您不需要或使用 PgAdmin-III。但不要删除任何内容 - 只需移动并记下它的位置。
  • @CraigRinger:你能详细说明一下吗?我在上面的编辑中粘贴了我的ls。请指导我移动哪些。谢谢
  • 我没有 Mac,Apple 不允许在 VM 中运行 OS X。所以我无法测试它,如果没有测试它的能力,我无法安全地给你具体的指示。请在 EnterpriseDB 论坛上将此作为问题提出(他们不会在这里闲逛,否则不会看到),因为 EnterpriseDB 需要修复软件包,因此不会发生这种情况。他们可能会为您提供解决方法的分步说明,因为他们可以访问 Mac 系统。
  • @CraigRinger:对不起,我是使用 Postgres 的新手。所以我实际上并不确切知道我在做什么,但我只是按照我从网上获得的说明进行操作。所以我不知道如何以及在哪里提出问题。此外,我不知道我面临什么错误。我只知道我有一些错误..
  • 当您使用 PostgreSQL 的 EnterpriseDB 包时,请在此处将其作为打包问题向他们提及:forums.enterprisedb.com/forums/show/9.page

标签: django macos postgresql selenium


【解决方案1】:

您不想链接:$DYLD_LIBRARY_PATH in bash.bash_profile

我这样做了,并且遇到了很多意想不到的错误,正如您在上面所遇到的那样。

解决方法是将 libssllibcrypto 从 Postgres = /Library/Postgres/9.3/lib 链接到您的系统 /usr/lib

这里是命令。首先将您的库从Postgres 复制到系统/usr/lib/

sudo cp /Library/PostgreSQL/9.3/lib/libssl.1.0.0.dylib /usr/lib
sudo cp /Library/PostgreSQL/9.3/lib/libcrypto.1.0.0.dylib /usr/lib

然后更新(或创建)此库的 /usr/lib 符号链接。命令是ln -fs:

sudo ln -fs /usr/lib/libssl.1.0.0.dylib /usr/lib/libssl.dylib
sudo ln -fs /usr/lib/libcrypto.1.0.0.dylib /usr/lib/libcrypto.dylib

【讨论】:

  • 我不知道这里发生了什么。但我刚刚粘贴了你的命令,它可以工作!!!。如果您花一点时间来解释这里发生了什么以及为什么会出现这些错误,这将对 Postgres/django 社区有所帮助。非常感谢您的帮助
  • 我完全不相信将库符号链接到/usr/lib 是安全的。如果您不替换任何现有库,您可能会侥幸成功,但这实际上只是解决冲突的一种解决方法。
猜你喜欢
  • 1970-01-01
  • 2014-11-19
  • 2014-09-14
  • 2013-11-08
  • 2017-05-14
  • 1970-01-01
  • 2017-05-28
  • 2014-06-26
  • 1970-01-01
相关资源
最近更新 更多