I want to access files and directories which may require root permission from a command line call to a python script using Enthought Canopy Python. However running python as root gives me the system distributed 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.
Same results using default bash terminal (Ubuntu Linux 14.04) and using the canopy command line (Canopy 1.5.2).
I reinstalled Canopy as root (i.e. re-ran the shell script as root) and the same problem still occurs.
Is there an easy way to run Canopy as root? I am not trying to distribute it to a number of users on a system just run a python script on files that need root permissions.
It sounds like sudo is not using your current PATH settings to locate the executable to run. IIRC this is a configuration option for sudo, whether to use a limited default PATH or not.
An easy way to work around this is to specify the full path to the python excutable that you want to execute. For example, if you've activated a Canopy virtual environment, then you can do it like this:
$ sudo $VIRTUAL_ENV/bin/python