cx_freeze可以找到lib pyside-python

时间:2012-08-05 19:52:38

标签: python macos pyside cx-freeze

使用pyside 1.1.0在osx 10.7上运行cxfreeze 4.2.3我得到:

复制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 - >建立/ exe.macosx-10.7-Intel的2.7 / PySide.QtCore.so

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

1 个答案:

答案 0 :(得分: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环境中使用。