Найти - Пользователи
Полная версия: Проблема компиляции кода с PyQt5
Начало » GUI » Проблема компиляции кода с PyQt5
1
HelpMe6
Здравствуйте. Есть программа на python с использованием библиотеки PyQt5 при попытке скомпилировать ее командой pyinstaller -F -w SL_lke2.1.py вылезает ошибка:

….
18705 INFO: Loading module hook ‘hook-matplotlib.backends.py’ from ‘c:\\users\\iru\\appdata\\local\\programs\\python\\python39\\lib\\site-packages\\PyInstaller\\hooks’…
Traceback (most recent call last):
File “<string>”, line 1, in <module>
File “c:\users\iru\appdata\local\programs\python\python39\lib\site-packages\matplotlib\__init__.py”, line 822, in <module>
rcParamsDefault = _rc_params_in_file(
File “c:\users\iru\appdata\local\programs\python\python39\lib\site-packages\matplotlib\__init__.py”, line 727, in _rc_params_in_file
with _open_file_or_url(fname) as fd:
File “c:\users\iru\appdata\local\programs\python\python39\lib\contextlib.py”, line 117, in __enter__
return next(self.gen)
File “c:\users\iru\appdata\local\programs\python\python39\lib\site-packages\matplotlib\__init__.py”, line 701, in _open_file_or_url
fname = os.path.expanduser(fname)
File “c:\users\iru\appdata\local\programs\python\python39\lib\ntpath.py”, line 293, in expanduser
path = os.fspath(path)
TypeError: expected str, bytes or os.PathLike object, not WindowsPath
19047 INFO: Loading module hook ‘hook-matplotlib.py’ from ‘c:\\users\\iru\\appdata\\local\\programs\\python\\python39\\lib\\site-packages\\PyInstaller\\hooks’…
Traceback (most recent call last):
File “<string>”, line 1, in <module>
File “c:\users\iru\appdata\local\programs\python\python39\lib\site-packages\matplotlib\__init__.py”, line 822, in <module>
rcParamsDefault = _rc_params_in_file(
File “c:\users\iru\appdata\local\programs\python\python39\lib\site-packages\matplotlib\__init__.py”, line 727, in _rc_params_in_file
with _open_file_or_url(fname) as fd:
File “c:\users\iru\appdata\local\programs\python\python39\lib\contextlib.py”, line 117, in __enter__
return next(self.gen)
File “c:\users\iru\appdata\local\programs\python\python39\lib\site-packages\matplotlib\__init__.py”, line 701, in _open_file_or_url
fname = os.path.expanduser(fname)
File “c:\users\iru\appdata\local\programs\python\python39\lib\ntpath.py”, line 293, in expanduser
path = os.fspath(path)
TypeError: expected str, bytes or os.PathLike object, not WindowsPath
Traceback (most recent call last):
File “c:\users\iru\appdata\local\programs\python\python39\lib\runpy.py”, line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File “c:\users\iru\appdata\local\programs\python\python39\lib\runpy.py”, line 87, in _run_code
exec(code, run_globals)
File “C:\Users\iru\AppData\Local\Programs\Python\Python39\Scripts\pyinstaller.exe\__main__.py”, line 7, in <module>
File “c:\users\iru\appdata\local\programs\python\python39\lib\site-packages\PyInstaller\__main__.py”, line 126, in run
run_build(pyi_config, spec_file, **vars(args))
File “c:\users\iru\appdata\local\programs\python\python39\lib\site-packages\PyInstaller\__main__.py”, line 65, in run_build
PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
File “c:\users\iru\appdata\local\programs\python\python39\lib\site-packages\PyInstaller\building\build_main.py”, line 815, in main
build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
File “c:\users\iru\appdata\local\programs\python\python39\lib\site-packages\PyInstaller\building\build_main.py”, line 762, in build
exec(code, spec_namespace)
File “G:\PyCharm\Gui_Программы\Programms_Py\SAFTD\SL_lke2.1.spec”, line 7, in <module>
a = Analysis(,
File “c:\users\iru\appdata\local\programs\python\python39\lib\site-packages\PyInstaller\building\build_main.py”, line 294, in __init__
self.__postinit__()
File “c:\users\iru\appdata\local\programs\python\python39\lib\site-packages\PyInstaller\building\datastruct.py”, line 159, in __postinit__
self.assemble()
File “c:\users\iru\appdata\local\programs\python\python39\lib\site-packages\PyInstaller\building\build_main.py”, line 473, in assemble
self.graph.process_post_graph_hooks(self)
File “c:\users\iru\appdata\local\programs\python\python39\lib\site-packages\PyInstaller\depend\analysis.py”, line 373, in process_post_graph_hooks
module_hook.post_graph(analysis)
File “c:\users\iru\appdata\local\programs\python\python39\lib\site-packages\PyInstaller\depend\imphook.py”, line 451, in post_graph
self._load_hook_module()
File “c:\users\iru\appdata\local\programs\python\python39\lib\site-packages\PyInstaller\depend\imphook.py”, line 408, in _load_hook_module
self._hook_module = importlib_load_source(
File “c:\users\iru\appdata\local\programs\python\python39\lib\site-packages\PyInstaller\compat.py”, line 632, in importlib_load_source
return mod_loader.load_module()
File “<frozen importlib._bootstrap_external>”, line 529, in _check_name_wrapper
File “<frozen importlib._bootstrap_external>”, line 1029, in load_module
File “<frozen importlib._bootstrap_external>”, line 854, in load_module
File “<frozen importlib._bootstrap>”, line 274, in _load_module_shim
File “<frozen importlib._bootstrap>”, line 711, in _load
File “<frozen importlib._bootstrap>”, line 680, in _load_unlocked
File “<frozen importlib._bootstrap_external>”, line 850, in exec_module
File “<frozen importlib._bootstrap>”, line 228, in _call_with_frames_removed
File “c:\users\iru\appdata\local\programs\python\python39\lib\site-packages\PyInstaller\hooks\hook-matplotlib.py”, line 17, in <module>
assert mpl_data_dir, “Failed to determine matplotlib's data directory!”
AssertionError: Failed to determine matplotlib's data directory!

Как это решить? Код логики и ui на github: https://github.com/Win322/Project_SAFTD
Из тех файлов нужны только SL_lke2.1.py и UI_lke2_1.py
doza_and
Поздравляем! Вы присоединились к клубу несчастных людей пытающихся компилировать питон скрипты.
Остальные пользователи, отдающие себе отчет что плюсов от этого нет, а есть одни минусы, смотрят на вас с чувством глубокого сострадания.

Как это решить?
Да элементарно! не пытаться делать экзешник.

p.s.
Если вы хотели получать нативный код, то надо было выбирать другой инструмент C++ и Qt.
HelpMe6
Спасибо за ваш остроумный ответ. Надеюсь вы научитесь не писать ерунду, а отвечать на вопрос.
py.user.next
HelpMe6
Надеюсь вы научитесь не писать ерунду
Сделай установщик своей программы, который ставит её в систему самым нормальным образом. Ты же никогда не видел Word или Excel одним exe-файлом? Потому что делать их одним exe-файлом просто глупо. Так же и сам питон ставится в систему - через установщик.
PEHDOM
HelpMe6 такие ошибки вылазят досточно часто при “компилировании” пайинсталером или схФризи, особенно если человек не понимает как работает пайтон, как работает либа и как работает пайинсталлер. Потому что процесс сборки пайинсталлером ничего общего с компилированием не имеет.

Очевидно, единого решения нет. Иногда банально помогает установить более новую/старую версию либы/пайинсталера, иногда достаточно просто явно импортировать либу, иногда нужны неочевидные танцы с бубном описаные гденить в мануалах/форумах либы/пайинсталлера котороые никто не читает, иногда - воспользоваться другой программой(если пользуетесь пайинсталером попробовать фризи и наоборот).
Поскольку вас проблема с “компилированием” matplotlib, очевдно нужно искать ответы либо у на сайте/гите матплотлиба либо пайинсталлера: https://github.com/pyinstaller/pyinstaller/pull/5006/commits/a5c54f9dff5917c7eac44730c244f3e27b38bd16
Ну или первая же ссылка в гугеле по сути советует тоже самое что и на гитхабе: https://stackoverflow.com/questions/67345287/matplotlib-directory-not-found-while-using-pyinstaller-to-create-exe-from-py-fil
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB