【问题标题】:In cxfreeze, can I specify the python version I want the executable to use?在 cxfreeze 中,我可以指定我希望可执行文件使用的 python 版本吗?
【发布时间】:2014-04-04 13:27:34
【问题描述】:

情况:
在我的 Mac Os 10.8.5 中,我可以使用最新的 cx_freeze(-4.3.2) 的 python2.7 和 python2.7-32。

我需要 cx_freeze 来选择 python2.7-32 版本,以便我的可执行应用程序可以使用 32 位版本的 OpenCV。

到目前为止,所有使用 cx_freeze 脚本的尝试都表明它捆绑了 python2.7(这是 64 位)并且应用程序无法执行:“cv2.so: mach-o, but wrong architecture” (如果您尝试使用 64 位的 Python 解释器导入 32 位内置 OpenCV,则会遇到相同的错误)

有没有办法“强制” cxfreeze 在它生成的可执行文件中捆绑安装的特定 python 版本(在本例中为 python2.7-32)?

编辑:
我还尝试使用 32 位从源代码构建 cx-freeze:

python2.7-32 setup.py build;
python2.7-32 setup.py 安装

不管怎样,生成的app还是64位版本:

$ python2.7-32 setup.py bdist_dmg

$ 文件捕获基础
capturebasic:Mach-O 64 位可执行 x86_64

$ arch -i386 ./capturebasic
拱:posix_spawnp:./capturebasic:可执行文件中的 CPU 类型错误

编辑2: 你从sourceforge下载的Mac的cx_freeze好像只有64位:
http://sourceforge.net/projects/cx-freeze/files/4.3.2/

如果您想创建 32 位应用程序,则需要 32 位版本的 cx_freeze。

我正在 cx_freeze 的邮件列表中确认是否有任何方法可以在 Mac 中安装 32 位版本。

【问题讨论】:

    标签: opencv cx-freeze


    【解决方案1】:

    我相信您不必修改设置脚本,只需更改用于构建它的命令即可。例如,您可以使用命令python2.7-32 setup.py build,而不是使用python setup.py build。您可能必须指定 python2.7-32 exe 的路径。所以像path\to\python2.7-32.exe setup.py build。注意:我使用的是 windows,所以我使用的示例命令在 mac 上可能会有所不同,比如 .exe 不是 .app

    希望这会有所帮助。

    【讨论】:

    • 感谢您的提示,我对脚本很着迷,我没有尝试 setup.py 选项,不幸的是它也没有成功。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    相关资源
    最近更新 更多