janvarev / Irene-Voice-Assistant

Ирина - русский голосовой ассистент для работы оффлайн. Поддерживает скиллы через плагины.
Other
829 stars 118 forks source link

Add numpy in requirements; add venv in gitignore #8

Closed MaxGorr closed 2 years ago

MaxGorr commented 2 years ago

Добавил в .gitignore папки venv и .venv - типовые названия для папок виртуальной среды. Запуск из виртуальный среды позволил найти проблему: отсутствие numpy в requirements. Была получена ошибка по истечении таймера:

Input (cmd):  ирина таймер одна минута
New Timer ID = 0  curtime= 1646187149.763431 duration= 60 endtime= 1646187209.763431
End Timer ID = 0  curtime= 1646187209.8347058 endtime= 1646187209.763431
ModuleNotFoundError: No module named 'numpy'
janvarev commented 2 years ago

Уточняющий вопрос - а что там зависит от numpy, можно понять? Я пробежался по коду, ничего не нашел. Просто не хочется добавлять модуль в зависимости просто так.

MaxGorr commented 2 years ago

Вероятно, дело в зависимостях. Вы пробовали воспроизвести проблему? На Windows у меня дело обстоит так (можно протестировать на чистой виртуалке, уверен, результат будет таким же):

clone_repo_and_cd_there
python -m venv venv
venv\Scripts\activate.bat
pip install -r requirements.txt
grep -irn --exclude-dir=.git numpy . 

И в результате найдено 204 вхождения. В частности в sounddevice и soundfile. Ещё раз: в Вашем коде numpy не используется, но он используется в зависимостях. Вообще, мне кажется, можно пойти дальше, и составить грамотный requirements.txt следующим образом:

  1. Накатить Ирину на чистую виртуалку или в виртуальную среду
  2. Установить все зависимости
  3. Протестировать плагины, которые из коробки; доустановить то, чего не хватает
  4. Создать requirements.txt с помощью команды: pip freeze > requirements.txt

Получится "билд" с зафиксированными версиями зависимостей

janvarev commented 2 years ago

Принято. Я думал, что внутренние зависимости пакетов типа numpy сами подтянутся, странно, что это не так. Зафиксировать зависимости тоже можно; к сожалению, мне не очень хочется этим заниматься, но если будет PR, приму.