尝试使用 cx_freeze 将 python 文件转换为可执行文件时出错
Posted
技术标签:
【中文标题】尝试使用 cx_freeze 将 python 文件转换为可执行文件时出错【英文标题】:Error on trying to convert a python file into an executable with cx_freeze 【发布时间】:2012-12-29 12:11:33 【问题描述】:我有 PyQt 的代码:
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtWebKit import *
def main():
page = raw_input('Escriu una web: ')
app = QApplication(sys.argv)
view = QWebView()
view.settings().setAttribute(QWebSettings.javascriptEnabled, True)
view.load(QUrl(page))
view.setWindowTitle('Titanicus 0.1')
view.show()
app.exec_()
if __name__ == '__main__':
main()
我的 setup.py 文件是这样的:
import sys
from cx_Freeze import setup, Executable
setup(
name = "On Dijkstra's Algorithm",
version = "3.1",
description = "A Dijkstra's Algorithm help tool.",
executables = [Executable("nautilus.py")])
我已经建立了文件夹,但是当我尝试打开新的 exe 文件时,它返回了那个错误:
File "ExtensionLoader_PyQt4_QtGui.py", line 11, in <module>
ImportError: No module named atexit
请帮忙!
【问题讨论】:
【参考方案1】:我会尝试将options = "build_exe" : "includes" : "atexit"
添加到setup.py
,
参考。 https://bitbucket.org/reclosedev/cx_freeze/src/f3cacc2fd45a/samples/PyQt4/setup.py
【讨论】:
【参考方案2】:试试这样的:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from PyQt4 import QtGui, QtCore, QtWebKit, QtNetwork
class myWindow(QtWebKit.QWebView):
def __init__(self, parent=None):
super(myWindow, self).__init__(parent)
self.setWindowTitle('Titanicus 0.1')
self.settings().setAttribute(QtWebKit.QWebSettings.JavascriptEnabled, True)
page = raw_input('Escriu una web: ')
self.load(QtCore.QUrl(page))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
main = myWindow()
main.show()
sys.exit(app.exec_())
【讨论】:
不错,这种代码方式更好,但它在输入行中返回 EOFError。为什么? 你是如何安装 cx_freeze 的?如果您是通过 pip 或 easy_install 安装的,请使用pip remove cx_freeze
将其删除 下载源代码 from here 并按照 readme
说明进行安装以上是关于尝试使用 cx_freeze 将 python 文件转换为可执行文件时出错的主要内容,如果未能解决你的问题,请参考以下文章
我正在尝试使用 cx_Freeze (windows) 将 PyEnchant 库包含到我的 exe 文件中
类型错误:列表索引必须是整数或切片,而不是 str 尝试使用 cx_Freeze 将 .py 文件转换为 .exe 时
Python 2.7 Cx_Freeze: ImportError: No module named __startup__
Python 2.7 Cx_Freeze: ImportError: No module named __startup__