#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. Это работает! Большое вам спасибо!