2012-08-05 79 views
2

与pyside 1.1.0在OSX 10.7运行cxfreeze 4.2.3我得到:cxfreeze找不到libpyside,蟒蛇

复制libpyside-python2.7.1.1.dylib - >编译/ exe.macosx-10.7 -intel-2.7/libpyside-python2.7.1.1.dylib 错误:libpyside-python2.7.1.1.dylib:没有这样的文件或目录

它发现PySide模块输出没有问题:

复制/Library/Python/2.7/site-packages/PySide/QtCore.so - > build/exe.macosx-10.7-intel-2.7/PySide.QtCore.so

使用osx的python2.7并且没有安装MacPorts

+1

在cx_Freeze邮件列表上询问,有一些mac用户可能有想法。另外,请尝试更新到cx_Freeze 4.3。 – 2012-08-06 16:55:39

+0

Thx托马斯K,4.3是一样的,尝试清单。 – navicore 2012-08-07 17:48:09

回答

2

发生这种情况是因为cx_Freeze从otool -L获取库的输出并将其用作复制库的绝对路径。

在我的情况下,这是一个问题,因为这些库位于每台机器上不同的虚拟环境中,因此cx_Freeze无法找到这些库。您可以使用install_name_tool命令修复此问题以替换路径。我将项目的引导脚本设置为扫描虚拟环境中存在的库的所有.so或.dylib文件,并交换路径。

手动做到这一点是:

otool -L /Library/Python/2.7/site-packages/PySide/QtCore.so 
install_name_tool -change "<path listed for libpyside above>" "<actual path to libpyside" /Library/Python/2.7/site-packages/PySide/QtCore.so 

要小心这样做了这样的一个全球性的文件,你可能会更好具有在virtualenv中环境的事情。