Linux Shell Script - Python библиотеки не могут быть найдены после активации виртуальной среды через скрипт оболочки из другого каталога - PullRequest
0 голосов
/ 18 апреля 2020

Ситуация: я пытаюсь открыть репо, который у меня есть, через приложение flask - оно все хранится на одном сервере linux. Приложение flask находится в папке с именем var, которая находится на том же уровне, что и home. У меня есть репозиторий в Documents, где я создал виртуальную среду, содержащую все необходимые библиотеки, и когда я запускаю сценарий оболочки в этом репо, он работает правильно.

Проблема: Когда я пытаюсь запустить сценарий оболочки Из моего Python скрипта в приложении flask я использую следующий код:

cd /home/ubuntu/Documents/my_repo \
source my_env/bin/activate \
th code/my_script.lua
python code/my_script2.py

Когда я выполняю это в my_repo, это работает без проблем и генерирует желаемые результаты. Однако, когда я пытаюсь вызвать это из моего flask приложения, он жалуется, что мне не хватает модулей. Я знаю, что модули есть, потому что он работает из папки, но он не может найти модули. Подходит следующее:

Traceback (most recent call last):
  File "code/prediction_script.py", line 3, in <module>
    from model import G_NET, D_NET64, D_NET128, D_NET256, D_NET512, D_NET1024, INCEPTION_V3
  File "/home/ubuntu/Documents/my_repo/code/model.py", line 2, in <module>
    import torch
ImportError: No module named torch

, где code - папка в my_repo

Когда я получаю текущий рабочий каталог при запуске моего скрипта Python, он выводит следующее: /home/ubuntu/Documents/my_repo

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...