Update:Как cxFreeze включает внутренние модули проекта?
Я подозреваю, что это ошибка в cxFreeze, как я понимаю, это должно идти автоматически.
конец обновление
Update:
я пропустил ошибку, данное cxFreeze:
Missing modules:
? Test.MyClass imported from main__main__
конец обновление
Я не уверен, что правильный термин для модулей внутри проект в отличие от sys или PyQt, поэтому я собираюсь с внутренними модулями проекта.
У меня есть пример кода ниже, где я получаю сообщение об ошибке «ImportError: невозможно импортировать имя MyClass». и я хотел бы узнать, как получить cxFreeze для компиляции этого модуля «Test.py».
Вот мой основной код:
Main.py
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
#from guiObjects.MainWindow import MainWindow
from Test import MyClass
if __name__ == "__main__":
# Initializing the main window
app = QApplication(sys.argv)
widget = QMainWindow()
#mainWindow = MainWindow(widget)
test = MyClass()
widget.show()
sys.exit(app.exec_())
Test.py
class MyClass(object):
def __init__(self):
pass
__init.py__
'''empty'''
Setup.py
import sys
from cx_Freeze import setup, Executable
path_platforms = ("C:\Python33\Lib\site-packages\PyQt5\plugins\platforms\qwindows.dll", "platforms\qwindows.dll")
includes = ["re","sip","atexit","PyQt5.QtCore","PyQt5.QtGui"]
includefiles = [path_platforms]
excludes = [
'_gtkagg', '_tkagg', 'bsddb', 'curses', 'email', 'pywin.debugger',
'pywin.debugger.dbgcon', 'pywin.dialogs', 'tcl',
'Tkconstants', 'Tkinter'
]
packages = ["os"]
path = []
# Dependencies are automatically detected, but it might need fine tuning.
build_exe_options = {
"includes": includes,
"include_files": includefiles,
"excludes": excludes,
"packages": packages,
"path": path
}
# GUI applications require a different base on Windows (the default is for a
# console application).
base = None
exe = None
if sys.platform == "win32":
exe = Executable(
script="../Main.py",
initScript = None,
base="Win32GUI",
targetDir = r"dist",
targetName="Main.exe",
compress = True,
copyDependentFiles = True,
appendScriptToExe = False,
appendScriptToLibrary = False,
icon = None
)
setup(
name = "Main",
version = "0.1",
author = 'me',
description = "My GUI application!",
options = {"build_exe": build_exe_options},
executables = [exe]
)
Я уже пробовал это. Это приводит к пустой тестовой папке, сделанной в Library.zip. Я подозреваю, что правильным результатом должно быть то, что файл Test.py заканчивается как скомпилированный pyc в Main.zip. – Folatt
Есть ли где-то папка 'Test', которую можно найти вместо файла' Test.py'? –
Как насчет того, что вы переименуете 'Test.py' на что-то еще, например' Test1.py' , а затем 'includes = [" re "," sip "," atexit "," PyQt5.QtCore "," PyQt5.QtGui " , "Test1"] ' – Hendry