Я сейчас пытаюсь упаковать свое приложение в exe. Для этого я использую этот setup.py:
from distutils.core import setup
import os
import py2exe
import shutil
options = {
"py2exe": {
# "bundle_files": 1,
# "optimize": 2,
"includes": ["[CENSORED]", "[CENSORED]", "PyQt5"]
}
}
a_origin_path = "[CENSORED]/[CENSORED]"
a_target_path = os.getcwd() + "/[CENSORED]"
b_origin_path = "[CENSORED]/[CENSORED]"
b_target_path = os.getcwd() + "/[CENSORED]"
print(f"About to copy [CENSORED]from: {a_origin_path} to: {a_target_path}")
shutil.copytree(a_origin_path, a_target_path, ignore=shutil.ignore_patterns(".git", ".gitignore", ".idea"))
print(f"About to copy [CENSORED]from: {a_origin_path} to: {a_target_path}")
shutil.copytree(a_origin_path, a_target_path, ignore=shutil.ignore_patterns("__pycache__"))
print("Copied. About to build installer")
setup(console=['[CENSORED]_Launcher.py'], options=options)
print("Installer created. About to delete")
shutil.rmtree(a_target_path)
shutil.rmtree(b_target_path)
print("deleted. Process done.")
Приложение работает нормально, и все данные выводятся, как и ожидалось. Если я знаю, попробуйте запустить только что созданный exe-файл, я получу следующий вывод:
[CENSORED]\dist>[CENSORED]_Launcher.exe
Traceback (most recent call last):
File "[CENSORED]_Launcher.py", line 4, in <module>
File "[CENSORED]\GUI\__init__.pyc", line 1, in <module>
File "[CENSORED]\GUI\Resources_rc.pyc", line 9, in <module>
File "<loader>", line 10, in <module>
File "<loader>", line 8, in __load
ImportError: (DLL load failed: The specified module could not be found.) '[CENSORED]\\dist\\PyQt5.QtCore.pyd'
Если я зайду в папку с файлом, файл будет там и только что создан.
У меня нетИдея, как устранить эту ошибку. Я обнаружил множество ошибок, вызванных PYQt5.12.3 + при поиске DLL, поэтому я опустился до PyQT5.12.2, который избегает всех этих ошибок.
Большое спасибо Kevin