Ошибка 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 никогда не создается?

Кто-нибудь сталкивался с этой проблемой? Любая помощь приветствуется.

0 ответов

Другие вопросы по тегам