python3 & pyqt4 & cx_freeze: 找不到名为'sip'的模块

1 投票
1 回答
3015 浏览
提问于 2025-04-18 13:04

我最近学了一些Python和PyQt的基础知识,今天想把我做的一个程序转换成exe文件。我使用的是Python 3.4.1和通过二进制安装程序安装的PyQt4(我的系统是32位的Windows 7企业版,如果这有影响的话)。所以我发现Cx_Freeze应该是个合适的工具,但到现在为止,我花了好几个小时试图让它工作。

我从这个网站安装了Cx_Freeze(在从pypi.python.org安装后遇到了一些关于模块的错误;这个版本据说有个补丁修复了这个问题),这是我当前的setup.py文件:

import sys
from cx_Freeze import setup, Executable

build_exe_options = {"packages": ["re", "sip"]}

setup(
    name = "Project",
    version = "1.0",
    description = "desc",
    options = {'build_exe': build_exe_options},
    executables = [Executable("project.py", base = "Win32GUI")]
    )

所以,当我在命令提示符下运行它时(python setup.py build),它会创建构建文件夹和其他东西,但当我尝试运行里面的project.exe时,我收到了这个错误信息

此外,我还尝试过把“re”和“sip”放在includes里(而不是packages)。还有一个早期版本没有我定义的特定选项。我也尝试过简单地复制一些我在网上找到的其他setup文件等等,但都没有成功。

提前感谢任何帮助 :))

1 个回答

0

重新发布作为一个回答:

这是一个错误,下一版本的cx_Freeze会修复这个问题。当它无法将代码文件解析为Python语法时,它会尝试把它当作一个已编译的库来处理,但这并不一定正确(例如,PyQt包含了一些针对Python 2和3的独立文件)。在此之前,解决这个问题最简单的方法是手动对你安装的cx_Freeze进行修复,具体方法可以参考这个评论

撰写回答