Модуль PyInstaller cftime не найден

#python #pyinstaller #python-venv #netcdf4

#python #pyinstaller #python-venv #netcdf4

Вопрос:

Я начинаю работать с PyInstaller для создания exe-файла из моих скриптов Python, но у меня проблема с модулем netCDF4. Я работаю над Windows 7. Код действительно прост:

 from netCDF4 import Dataset
out = Dataset("file.nc", "w")
out.GA = "ok"
out.close()
print("ok")
  

Я начал создавать виртуальную среду, используя

 python -m venv v_env_x1
  

и активируйте его с помощью

 ScriptsActivate
  

затем я устанавливаю в каталог v_env модули netCDF4 и PyInstaller

 pip install netCDF4
pip install PyInstaller
  

наконец, я создал exe-файл с

 PyInstaller script.py --onefile
  

Команда генерирует exe-файл, но когда я пытаюсь запустить его, появляется эта ошибка:

Ошибка ModuleNotFoundError: нет модуля с именем ‘cftime’

Однако, если я использую pip list команду, модуль cftime присутствует в виртуальной среде! Более того, если я использую команду

 python script.py
  

код выполняется нормально.
Кто-нибудь может мне помочь? Ниже приведен результат pip list команды

 Package                   Version
------------------------- ---------
altgraph                  0.17
cftime                    1.2.1
future                    0.18.2
netCDF4                   1.5.4
numpy                     1.19.1
pefile                    2019.4.18
pip                       20.2.2
pyinstaller               4.0
pyinstaller-hooks-contrib 2020.7
pywin32-ctypes            0.2.0
setuptools                39.0.1
  

Спасибо

Комментарии:

1. добавьте флаг —hidden-imports cftime в свою команду. Поскольку вы не импортируете модуль напрямую, pyinstaller может не понимать, что это необходимая зависимость.

2. Это работает! Большое вам спасибо!