[問題] CX_Freeze產生單執行檔?

看板Python作者 (愛與勇氣的年代)時間11年前 (2014/07/24 22:29), 編輯推噓2(203)
留言5則, 1人參與, 最新討論串1/1
Py鄉民大家好 目前碰到了一個難題 - CX_freeze產生單個執行檔. 但透過google還是沒有能找到答案 似乎都是用來產生 .msi 或是 帶有一堆資料庫的exe 想問看看有沒有什麼辦法可以產生單一檔案? 其他的package ? py2exe ? 不然....還是只能回python 2.7 用 Pyinstaller ~"~ Pyinstaller 真的好用 QQ ====================================================== 以下是我用於 CX_freeze 的 setup.py: import sys from cx_Freeze import setup, Executable # Dependencies are automatically detected, but it might need fine tuning. build_exe_options = {"packages": ["os"], "excludes": ["tkinter"]} # GUI applications require a different base on Windows (the default is for a # console application). base = None if sys.platform == "win32": base = "Win32GUI" setup( name = "Test", version = "1.0", description = "Good", options = {"build_exe": build_exe_options}, executables = [Executable("test.pyw", base=base)]) ============================================================== 以下是測試code: import math import os from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: def _fromUtf8(s): return s try: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig, _encoding) except AttributeError: def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig) class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8("MainWindow")) MainWindow.resize(281, 107) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.pushButton = QtGui.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(100, 30, 71, 31)) self.pushButton.setObjectName(_fromUtf8("pushButton")) MainWindow.setCentralWidget(self.centralwidget) self.statusbar = QtGui.QStatusBar(MainWindow) self.statusbar.setObjectName(_fromUtf8("statusbar")) MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None)) self.pushButton.setText(_translate("MainWindow", "PTT", None)) if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) MainWindow = QtGui.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_()) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.54.87 ※ 文章網址: http://www.ptt.cc/bbs/Python/M.1406212187.A.3E8.html

08/15 23:44, , 1F
暫時別用cxfreeze吧 他在python3有一些bug
08/15 23:44, 1F

08/15 23:49, , 2F
執行編譯出的exe顯示fatal python error:cannot get
08/15 23:49, 2F

08/15 23:49, , 3F
zipimporter instance
08/15 23:49, 3F

08/15 23:49, , 4F
現在很煩惱找不到替代的程式...
08/15 23:49, 4F

08/17 17:42, , 5F
這一篇或許有解法 http://ppt.cc/soCR
08/17 17:42, 5F
文章代碼(AID): #1JqHXRFe (Python)
文章代碼(AID): #1JqHXRFe (Python)