Я хочу преобразовать мой .py, который загружается с файлом UI, в exe.
Я выполнил шаги из PyInstaller + Ui Files и PyInstaller + UI Files - FileNotFoundError: [Errno 2] Нет такого файла или каталога:
Я добавил код метода resource_path в свой .py
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
try:
# PyInstaller creates a temp folder and stores path in _MEIPASS
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)
form = resource_path("qt_designer.ui")
Ui_MainWindow, QtBaseClass = uic.loadUiType(form)
Я также внес изменения в свой MyApplication.spe c как таковой:
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['main.py'],
pathex=['C:\\Users\\Alvin\\PycharmProjects\\untitled'],
binaries=[],
datas=[('C:\\Users\\Alvin\\PycharmProjects\\untitled\\qt_designer.ui',".")],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='MyApplication',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True )
Но я получаю эту ошибку:
Traceback (most recent call last):
File "main.py", line 380, in <module>
File "main.py", line 36, in __init__
File "site-packages\PyQt5\uic\__init__.py", line 227, in loadUi
File "site-packages\PyQt5\uic\Loader\loader.py", line 72, in loadUi
File "site-packages\PyQt5\uic\uiparser.py", line 1013, in parse
File "xml\etree\ElementTree.py", line 1196, in parse
File "xml\etree\ElementTree.py", line 586, in parse
FileNotFoundError: [Errno 2] No such file or directory: 'qt_designer.ui'
[761476] Failed to execute script main
Снимок экрана с ошибкой
Может ли кто-нибудь помочь мне указать на мою ошибку или шаги, которые я сделал неправильно?