сбой выполнения пользователя root

#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 . add PYTHONPATH Defaults env_keep = "ENV1 ENV2 ..." в файл sudoers. удалите значения по умолчанию !env_reset из файла sudoers, если таковые имеются