Форум сайта python.su
Здравствуйте. Есть программа на 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
Отредактировано HelpMe6 (Окт. 9, 2021 12:58:40)
Офлайн
Поздравляем! Вы присоединились к клубу несчастных людей пытающихся компилировать питон скрипты.
Остальные пользователи, отдающие себе отчет что плюсов от этого нет, а есть одни минусы, смотрят на вас с чувством глубокого сострадания.
Как это решить?
Да элементарно! не пытаться делать экзешник.
p.s.
Если вы хотели получать нативный код, то надо было выбирать другой инструмент C++ и Qt.
Отредактировано doza_and (Окт. 9, 2021 14:53:43)
Офлайн
Спасибо за ваш остроумный ответ. Надеюсь вы научитесь не писать ерунду, а отвечать на вопрос.
Офлайн
HelpMe6Сделай установщик своей программы, который ставит её в систему самым нормальным образом. Ты же никогда не видел Word или Excel одним exe-файлом? Потому что делать их одним exe-файлом просто глупо. Так же и сам питон ставится в систему - через установщик.
Надеюсь вы научитесь не писать ерунду
Офлайн
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
[code python][/code]
Отредактировано PEHDOM (Окт. 10, 2021 08:54:03)
Офлайн