PySide import error Mac OS X El Capitan, Library not loaded: @rpath/libpyside.cpython-34m.1.2.dylib

一笑奈何 提交于 2020-01-12 09:56:31

问题


ive been trying to run an application that was written on a Linux machine (and works without any issues), on my Mac running OS X El Capitan. the program utilizes PyQt4(4.11.4) and PySide (1.2.4), using Python 3.4.2. I created a virtualenv to guarantee that everything runs on the correct version of python. i have sip installed as well. However when i actually try to import anything from PySide it gives me the following error:

Traceback (most recent call last):
  File "GUI.py", line 17, in <module>
    from PySide import QtCore, QtGui, QtNetwork
ImportError: dlopen(/Users/mksmasr/.pyenv/versions/3.4.2/envs/pubdatapy34/lib/python3.4/site-packages/PySide/QtCore.so, 2): Library not loaded: @rpath/libpyside.cpython-34m.1.2.dylib
  Referenced from: /Users/mksmasr/.pyenv/versions/3.4.2/envs/pubdatapy34/lib/python3.4/site-packages/PySide/QtCore.so
  Reason: image not found

i cant seem to figure out the issue even after reading other SO posts and trying everything suggested.

when i run python at the command line and import PySide it imports it without an issue, the problem arises when trying to access anything inside of the PySide directory.

ive installed everything from source,it didn't work, so i tried pip,same issue, then i tried homebrew, and same issue. is the issue possibly PySide and python3.x compatibility?

I would appreciate any help!


回答1:


I got it to work. First, following this thread here

This gave the option of using PySide 1.2.2 or building 1.2.4 from scratch. I settled for 1.2.2:

pip install -U PySide==1.2.2

After that, when trying to import PySide libraries, I got errors complaining about

unsafe use of relative rpath

To fix those I followed this advise

In a nutshell: I checked the libraries for relative links like this:

otool -L /Library/Python/2.7/site-packages/PySide/QtCore.so

Then I used install_name_tool -change ... as outlined in above link to re-link the two relative libraries in there to "/usr/local/...". E.g.:

sudo install_name_tool -change libshiboken-python2.7.1.2.dylib /usr/local/lib/libshiboken-python2.7.1.2.dylib QtCore.so
sudo install_name_tool -change libpyside-python2.7.1.2.dylib /usr/local/lib/libpyside-python2.7.1.2.dylib QtCore.so

Rinse and repeat for all the .so files. This got PySide 1.2.2 working on El Capitan for me.



来源:https://stackoverflow.com/questions/38315537/pyside-import-error-mac-os-x-el-capitan-library-not-loaded-rpath-libpyside-cp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!