python3 & pyqt4 & cx_freeze:没有名为“sip”的模块
Posted
技术标签:
【中文标题】python3 & pyqt4 & cx_freeze:没有名为“sip”的模块【英文标题】:python3 & pyqt4 & cx_freeze: no module named 'sip' 【发布时间】:2014-07-12 18:24:42 【问题描述】:最近刚学了一些python和pyqt的基础知识,今天想把自己做的一个程序转成exe。我正在使用通过二进制安装程序安装的 python 3.4.1 和 PyQt4(我的系统是 32 位 Windows 7 企业版,如果有什么不同的话)。所以我发现 Cx_Freeze 应该是一个可行的工具来完成这项工作,但就目前而言,我已经花了几个小时试图让它发挥作用。
我从site 安装了 Cx_Freeze(在从 pypi.python.org 安装它并考虑到模块时出现一些错误;这个版本据说有一个修复它的补丁),这是我的设置(当前版本) .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")]
)
所以,当我在 cmd (python setup.py build
) 中运行它时,它会创建构建文件夹和所有内容,但是当我尝试在其中运行 project.exe 时,我得到了这个 error message。
除此之外,我还尝试在包含(而不是包)中使用“re”和“sip”。还有一个早期版本没有我定义的特定选项。还尝试简单地复制我可以在网上找到的其他几个设置文件,等等 - 但没有任何效果。
提前感谢您的帮助:))
【问题讨论】:
你能显示冻结它的输出(运行setup.py build
)吗?它会很长,所以把它放在一个粘贴箱里。如果需要,您可以像python setup.py build > freezelog.txt
一样运行,将输出写入文件。
@ThomasK 当然,这里是:pastebin.com/Bjf5vnqB。此外,这是在 cmd 中写出的:i.stack.imgur.com/QemKH.png。
啊,这是一个错误,将在下一个版本的 cx_Freeze 中修复。同时,解决此问题的最简单方法是手动将修复应用到已安装的 cx_Freeze,如 this comment 中所述。
@ThomasK 成功了!最后!十分感谢! :DD
【参考方案1】:
作为答案转发:
这是一个错误,将在下一版本的 cx_Freeze 中修复。当它无法将代码文件解析为 Python 语法时,它会尝试将其视为已编译库,但这不一定是正确的(例如,PyQt 包含一些用于 Python 2 和 3 的单独文件)。同时,解决此问题的最简单方法是手动将修复应用到已安装的 cx_Freeze,如 this comment 中所述。
【讨论】:
以上是关于python3 & pyqt4 & cx_freeze:没有名为“sip”的模块的主要内容,如果未能解决你的问题,请参考以下文章
Python3判断shell下进程是否存在&&启动&&邮件通知