Запуск Enthought Canopy Python от имени пользователя root не может импортировать pandas

Я хочу получить доступ к файлам и каталогам, для которых может потребоваться разрешение root из вызова командной строки для скрипта Python с использованием Enthought Canopy Python. Однако запуск python от имени root дает мне системный распределенный python.

$ python

Enthought Canopy Python 2.7.6 | 64-bit | (default, Sep 15 2014, 17:36:10) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

$ sudo python

Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.

Те же результаты при использовании терминала bash по умолчанию (Ubuntu Linux 14.04) и при использовании командной строки canopy (Canopy 1.5.2).

Я переустановил Canopy как root (т.е. повторно запустил сценарий оболочки как root), и та же проблема все еще возникает.

Есть ли простой способ запустить Canopy от имени пользователя root? Я не пытаюсь распространять его среди нескольких пользователей в системе, просто запускаю скрипт Python для файлов, которым требуются права root.


person salotz    schedule 16.03.2015    source источник


Ответы (1)


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

Простой способ обойти это — указать полный путь к исполняемому файлу Python, который вы хотите выполнить. Например, если вы активировали виртуальную среду Canopy, вы можете сделать это следующим образом:

$ sudo $VIRTUAL_ENV/bin/python

person RobinDunn    schedule 17.03.2015
comment
Я искал файл конфигурации IIRC в течение нескольких минут... спасибо за объяснение. - person salotz; 17.03.2015