#python #linux #python-2.7
#python #linux #python-2.7
Вопрос:
Когда я запускаю python abc.py
, он работает нормально
Но когда я делаю sudo python abc.py
, он показывает ошибку отсутствия некоторых пакетов. Из нескольких ошибок импорта, вот одна:
ImportError: No module named numpy
Почему?
Я думаю, что эти пакеты устанавливаются с разрешениями обычного пользователя (ubuntu), а не с правами root. Если это так, как мне с этим справиться? Должен ли я снова устанавливать все пакеты с корневым доступом?
Примечание: все, что я обсуждал здесь, относится к компьютеру ec2 linux ubuntu
Комментарии:
1. Что вы подразумеваете под «Установленным с обычными разрешениями пользователя»? Как вы установили пакет? Вы должны либо установить его через диспетчер пакетов Ubuntu (
apt-get
), либо через easy_install или pip от имени root.2. Я установил пакеты, используя
pip install package-name
сработавшие для меня
Ответ №1:
Среда sudo может не содержать вашего PYTHONPATH
/etc/sudoers
содержит значения по умолчанию env_reset
. Просто добавьте значения по умолчанию env_keep = "PYTHONPATH"
/etc/sudoers
, и все будет работать просто отлично sudo
.
Комментарии:
1. в нем говорится
W10: Warning: Changing a readonly file
, что это не вызовет никаких проблем?2. прочитайте это — как редактировать sudoers: digitalocean.com/community/tutorials /…
3. это не работает для меня, когда я делаю echo $PYTHONPATH, это не дает мне никакого результата —
BLANK
4. python в системе был установлен с использованием Anaconda в системе
5. Попробуйте это: добавьте экспорт
PYTHONPATH=/your/custom/path
в~/.bashrc
или/etc/bash.bashrc
. addPYTHONPATH
Defaults env_keep = "ENV1 ENV2 ..."
в файл sudoers. удалите значения по умолчанию!env_reset
из файла sudoers, если таковые имеются