2015-03-16 2 views
0

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

$ 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. 

Те же результаты с использованием Баш по умолчанию терминал (Ubuntu Linux 14,04) и с помощью командной строки сени (Canopy 1.5.2).

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

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

ответ

1

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

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

$ sudo $VIRTUAL_ENV/bin/python

+0

Я искал вокруг для файла конфигурации «IIRC» в течение нескольких минут ... спасибо за объяснение. – salotz