python - cxfreeze 找不到 libpyside-python

标签 python macos pyside cx-freeze

在 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/

相关文章:

python - 删除上一行

python - 如何根据条件合并两个数据集

Qt,在不重新实现绘画的情况下删除选择的虚线矩形

python - PySide/Python GUI 卡住

macos - Cocoa 中 GetKeys() 的现代等价物是什么?

python - QThreads 是否控制推向它的堆栈创建的 QObjects 的销毁?

python - 提起一个 tkMessageBox

python - 将文本拆分为逻辑 block

macos - brew 更改包安装位置

python - 当你创建新的conda环境时,是否会自动包含/usr/local/anaconda3/pkgs中的所有包?