使用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
答案 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环境中使用。