使用selenium与Psycopg2,Mac OSX Mavericks上的Postgres的webdriver异常

时间:2014-05-11 21:32:03

标签: django macos postgresql selenium

我在我的Django应用中使用Postgres。 PostgreSQL与EnterpriseDB一起安装"一键式即可#34;安装程序。

我在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有同样的问题。但是没有发布它如何工作的解决方案。一些建议让它发挥作用?

P.S: 现在我需要发出这个命令

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

1 个答案:

答案 0 :(得分:1)

您不想在$DYLD_LIBRARY_PATHbash

中链接:.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