在 osx 10.7 上使用 pyside 1.1.0 运行 cxfreeze 4.2.3 我得到:
正在复制 libpyside-python2.7.1.1.dylib -> build/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
最佳答案
发生这种情况是因为 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 环境中。
关于python - cxfreeze 找不到 libpyside-python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11819581/