Я подал заявку, используя pyqt
. при запуске из IDE файлы .py работают хорошо. Однако при запуске файла .exe с помощью:
pyinstaller --name="Myapp" --windowed --onefile main.py
я получаю файл .exe. Когда я пытаюсь запустить его, он говорит:
Failed to execure script main
Я попытался еще раз, но на этот раз с:
pyinstaller main.py
Он сгенерировал папку с именем main
в dist
. Я запустил main.exe
в командной строке и получил:
ImportError: No module named 'mlarray'
Я пошел в библиотеку matlab
для python, которую я установил в \Python\Python36\Lib\site-packages\matlab
, и изменил mlarray.py
следующим образом:
from _internal.mlarray_sequence import _MLArrayMetaClass
Кому:
from matlab._internal.mlarray_sequence import _MLArrayMetaClass
Я даже изменил __init__.py
: с:
from mlarray import double, single, uint8, int8, uint16, \
int16, uint32, int32, uint64, int64, logical
from mlexceptions import ShapeError as ShapeError
from mlexceptions import SizeError as SizeError
на:
from matlab.mlarray import double, single, uint8, int8, uint16, \
int16, uint32, int32, uint64, int64, logical
from matlab.mlexceptions import ShapeError as ShapeError
from matlab.mlexceptions import SizeError as SizeError
Наконец Я изменил Python\Python36\Lib\site-packages\matlab\_internal\mlarray_sequence.py
с:
from _internal.mlarray_utils import _get_strides, _get_size, \
_normalize_size, _get_mlsize, _reshape
на:
from matlab._internal.mlarray_utils import _get_strides, _get_size, \
_normalize_size, _get_mlsize, _reshape
Сохранил всю работу и попробуйте снова сделать pyinstaller.
pyinstaller main.py
и на этот раз Я получаю следующую ошибку:
File "site-packages\matlab\engine\__init__.py", line 62, in <module>
OSError: Please reinstall MATLAB Engine for Python or contact MathWorks Technical Support for assistance: [Errno 2] No such file or directory: 'C:\\pmafgx_das\\das2\\main\\ReleaserQt\\dist\\main\\matlab\\engine\\_arch.txt'
[2028] Failed to execute script main
Это очень расстраивает, и я не знаю, что делать дальше. Пожалуйста, если у вас есть понимание, я буду признателен, если вы поможете мне.