PySide / Qt导入错误

时间:2014-09-04 02:10:21

标签: python macos qt pyside

我试图像这样将PySide / Qt导入Python并得到以下错误:

from PySide import QtCore

ImportError: dlopen(/usr/local/lib/python2.7/site-packages/PySide/QtCore.so, 2): Library not loaded: libpyside-python2.7.1.2.dylib
  Referenced from: /usr/local/lib/python2.7/site-packages/PySide/QtCore.so
  Reason: image not found

我通过以下方式运行/安装:

  • Mac OSX 10.9.4 Mavericks
  • Homebrew Python 2.7
  • Homebrew安装Qt
  • Pip安装了PySide

文件libpyside-python2.7.1.2.dylib与错误消息中列出的QtCore.so文件位于同一路径中。

我对这个特定问题的所有搜索都让人们试图将这些库打包为应用程序的一部分,我没有这样做。我只是想在我的系统上运行它,但却有这个问题。对于应用程序的疑难解答,人们建议oTool;不确定它是否有用,但这是我运行oTool时的输出:

otool -L QtCore.so 
QtCore.so:
    libpyside-python2.7.1.2.dylib (compatibility version 1.2.0, current version 1.2.2)
    libshiboken-python2.7.1.2.dylib (compatibility version 1.2.0, current version 1.2.2)
    /usr/local/lib/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.6)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

有什么想法吗?在此先感谢:)

5 个答案:

答案 0 :(得分:15)

好吧,安装程序有点坏了,因为oTool的输出应该报告库的完整路径(Pyside安装程序应该使用install_name_tool更改路径)。

我建议你定义:

,而不是疯狂地理解安装程序的哪个部分被破坏了
DYLD_LIBRARY_PATH=/your/path/to/pyside/libraries
export DYLD_LIBRARY_PATH

这将强制可执行加载程序将库扫描到您提供的路径中,即使它未由链接器配置。

答案 1 :(得分:13)

如果您观看此内容,您的问题将得到修复: https://github.com/pyside/packaging/blob/master/setuptools/templates/pyside_postinstall.py

pyside_postinstall.py -install

答案 2 :(得分:3)

我遇到了类似问题,我通过手动使用with emp(empno, name, mgr) as ( select 7788, 'SCOTT', 7566 FROM DUAL UNION ALL select 7902, 'FORD', 7566 FROM DUAL UNION ALL select 7566, 'JONES', 9999 FROM DUAL UNION ALL select 7876, 'ADAMS', 7788 FROM DUAL ) select name, mgr from ( select name AS MGR, connect_by_root(name) as name, level as lev, connect_by_isleaf leaf from emp connect by prior MGR = EMPNO ) where leaf = 1 and lev > 1 (如问题中所示)和otool -L来更新路径来解决问题。

install_name_tool

在脚本运行之前,我必须为PySide目录中的几个文件执行此操作。

此博客文章是一个很好的参考:http://thecourtsofchaos.com/2013/09/16/how-to-copy-and-relink-binaries-on-osx/

答案 3 :(得分:1)

我找到了解决方案here

export DYLD_LIBRARY_PATH=/usr/local/lib/python[version]/site-packages/PySide

对于python 3.5,这将是

export DYLD_LIBRARY_PATH=/usr/local/lib/python3.5/site-packages/PySide

答案 4 :(得分:0)

我在使用Brew安装的Qt和虚拟环境的Mavericks上遇到了类似的问题。

我不得不brew reinstall Qt

然后运行pyside_postinstall.py -install

见这里:https://github.com/Homebrew/homebrew/issues/27898