python3 & pyqt4 & cx_freeze: 找不到名为'sip'的模块
我最近学了一些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进行修复,具体方法可以参考这个评论。