Ошибка Pyinstaller при запуске скомпилированного.exe: отсутствует grib_api.h
Я новичок в pyinstaller и сталкиваюсь с FileNotFoundError
при запуске моего.exe. Вывод командной строки ниже:
c:\users\###\appdata\local\programs\python\python37-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py:627: MatplotlibDeprecationWarning:
The MATPLOTLIBDATA environment variable was deprecated in Matplotlib 3.1 and will be removed in 3.3.
exec(bytecode, module.__dict__)
Traceback (most recent call last):
File "<script-name>", line 31, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "c:\users\###\appdata\local\programs\python\python37-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "site-packages\cfgrib\__init__.py", line 19, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "c:\users\###\appdata\local\programs\python\python37-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "site-packages\cfgrib\cfmessage.py", line 28, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "c:\users\###\appdata\local\programs\python\python37-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "site-packages\cfgrib\messages.py", line 36, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "c:\users\###\appdata\local\programs\python\python37-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "site-packages\cfgrib\bindings.py", line 32, in <module>
File "pkgutil.py", line 637, in get_data
File "c:\users\###\appdata\local\programs\python\python37-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 475, in get_data
with open(path, 'rb') as fp:
FileNotFoundError: [Errno 2] No such file or directory: '<file-location\\<script_name>\\cfgrib\\grib_api.h'
[6472] Failed to execute script <script-name>
Кажется, проблема связана с пакетом cfgrib. Каталог сборки для модуля cfgrib не создается при запуске.exe. Таким образом grib_api.h
файл не найден, потому что каталог никогда не создается.
Я попытался собрать.exe в anaconda и pip и обнаружил одну и ту же ошибку в обоих случаях.
Я также попытался переназначить файл.spec pyinstaller с --add-data
пометить в другом месте grib_api.h
на моем компьютере, но не смог заставить его работать. Смотри ниже.
pyinstaller --onedir --add-data "<source-path>\cfgrib\grib_api.h; <destination-path>\cfgrib" <script-name>
Я реализовал последнее, чтобы обойти ошибку для другого отсутствующего файла, но я считаю, что в этом случае это не работает, потому что папка назначения ./cfgrib
никогда не создается?
Кто-нибудь сталкивался с этой проблемой? Любая помощь приветствуется.