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”的模块的主要内容,如果未能解决你的问题,请参考以下文章

PyQt4 工具栏按钮对齐

python3.6.8 安装pyqt4失败如何解决?

PyQt4 应用程序按钮不起作用

Python3判断shell下进程是否存在&&启动&&邮件通知

Docker&Java&Mysql&Python3&Supervisor&Elasticsearch安装

OS X 上的 PyQt4 和 Python 3.2