#ubuntu #virtual-machine #python-3.6
#ubuntu #виртуальная машина #python-3.6
Вопрос:
Я пытаюсь запустить файл sh с моего терминала PyCharm на виртуальной машине Ubuntu 20.04.01 LTS. У меня есть виртуальная среда, созданная для Python 3.6 с использованием MiniConda, где в настройках я могу проверить, установлены ли нужные мне пакеты (включая numpy, scipy, torch и т. Д.). При записи pip install numpy
я могу убедиться, что требование уже выполнено /home/username/miniconda3/envs/DenseFusion/lib/python3.6/site-packages
. При записи python --version
он возвращает правильную версию, 3.6. При переходе на консоль Python и запуске import numpy
ошибок нет (ни для любого другого пакета).
После cd’ing в соответствующую папку (в терминале PyCharm) я запускаю sudo ./experiments/scripts/eval_linemod.sh
(местоположение моего нужного файла sh). Это успешно запускается, выполняя следующий короткий фрагмент кода:
`#!/bin/bash
set -x set -e
экспорт PYTHONUNBUFFERED=»True» экспорт CUDA_VISIBLE_DEVICES=0
python3 ./tools/eval_linemod.py —dataset_root ./datasets/linemod/Linemod_preprocessed
—обученные контрольные точки модели/linemod/pose_model_9_0.01310166542980859.pth
—уточняющая модель обученные контрольные точки/linemod/pose_refine_model_493_0.006761023565178073.pth`
Скрипт python, который он выполняет, eval_linemod.py , возвращает следующую ошибку при запуске импорта своих пакетов в начале скрипта.
ModuleNotFoundError: No module named numpy
Эта ошибка возникает при попытке любого из пакетов. Я в тупике относительно того, почему скрипт не может распознать пакеты сайта venv, хотя все остальные шаги подтверждают, что venv доступен. Я никогда не использовал Linux до этого и пытаюсь следовать инструкциям на странице DenseFusion github. Если мне не хватает очень простой характеристики Linux, пожалуйста, дайте мне знать. Любая помощь приветствуется.
Комментарии:
1. Почему вы должны запускать скрипт с
sudo
помощью? При использованииsudo
вы выполняете команду как пользовательroot
, который, вероятно, не увидитsite-packages
вашего обычного пользователя и может даже использовать другой интерпретатор.2. Просто удалите
sudo
и оставьте путь к скрипту.sudo
добавляется к команде, когда вам нужно выполнить какую-либо «административную» задачу, требующую повышенных привилегий, наиболее типичной из которых является установка пакетов в системе. Обычно это не требуется для запуска скриптов обработки чисел.