Как запустить Anaconda Python в sudo

В настоящее время использую AWS для запуска некоторых тестов в проекте машинного обучения. Я хотел бы запускать скрипты Python без интернета (через root), потому что пропускная способность интернета крайне ограничена. Я пытаюсь запустить скрипт convnets.py, выполнив

sudo python convnets.py >> output

Но это не работает, так как Anaconda не использует PYTHONPATH, что делает невозможным для пользователя root найти среду Anaconda Python. Поэтому выдаются такие ошибки, как «невозможно импортировать» и «модуль не найден».

Как мне настроить это, чтобы Anaconda и sudo могли играть честно вместе?


person emilywhou    schedule 16.04.2016    source источник
comment
Вы уверены, что python указывает на питона Анаконды? Скорее всего, это не так, поскольку sudo имеет другой PATH. Попробуйте sudo /path/to/anaconda/bin/python convnets.py   -  person Suever    schedule 16.04.2016


Ответы (1)


Поскольку при использовании sudo используется другая PATH среда, чем ваша обычная среда, вам нужно обязательно указать, что вы хотите использовать интерпретатор python Anaconda, а не системный python. Вы можете проверить, какой из них запущен, с помощью следующей команды

sudo which python

Чтобы исправить это и указать на интерпретатор Python Anaconda, укажите полный путь к правильному интерпретатору.

sudo /path/to/anaconda/bin/python convnets.py >> output

Если вы сделаете это, вы сможете получить доступ ко всем модулям, управляемым anaconda.

С другой стороны, если у вас создана среда Anaconda

conda create --name $ENVIRONMENT_NAME python

Вы можете активировать его до запуска вашей команды

sudo source activate $ENVIRONMENT_NAME && python convnets.py >> output
person Suever    schedule 16.04.2016
comment
Отлично, это сработало! Спасибо, люблю, когда решение такое простое :) - person emilywhou; 16.04.2016
comment
@SiddharthDas sudo /path/to/anaconda/bin/python convnets.py >> output не сработало? - person d4tm4x; 19.11.2019