>情况:
在我的Mac OS 10.8.5中,我可以使用python2.7和python2.7-32以及最新的cx_freeze(-4.3.2)。
我需要cx_freeze来选择 python2.7-32 版本,以便我的可执行应用程序可以使用 32 位版本的 OpenCV。
到目前为止,所有使用脚本cx_freeze尝试都表明它捆绑了python2.7(64位),并且应用程序无法执行:"cv2.so:mach-o,但错误的架构"(这与尝试导入 32 位内置的 OpenCV 时遇到的错误相同,Python 解释器为 64)
有没有办法"强制"cxfreeze将安装的特定python版本(在本例中为python2.7-32)捆绑在它生成的可执行文件中?
编辑:
我还尝试使用以下方法从 32 位源代码构建 cx-freeze:
python2.7-32 setup.py 构建;
Python 2.7-32 setup.py 安装
无论如何,生成的应用程序仍然是 64 位版本:
$ 蟒蛇2.7-32 setup.py bdist_dmg
$ 文件捕获基本
捕获基本:Mach-O 64 位可执行x86_64$ arch -i386 ./capturebasic
arch: posix_spawnp: ./capturebasic: 可执行文件中的 CPU 类型错误
编辑2:您从sourceforge下载的Mac cx_freeze似乎只有64位:
http://sourceforge.net/projects/cx-freeze/files/4.3.2/
应用,则需要 32 位版本的 cx_freeze。
我正在确认是否有任何方法可以在cx_freeze的邮件列表中在Mac中安装32位版本。
您不必触摸安装脚本,只需更改用于构建它的命令即可。例如,您可以使用命令 python2.7-32 setup.py build
代替使用 python setup.py build
。您可能需要指定 python2.7-32 exe 的路径。所以像pathtopython2.7-32.exe setup.py build
.注意:我使用Windows,所以我使用的示例命令在Mac上可能略有不同,例如而不是.exe
它是.app
。
希望这有帮助。