我在Google云计算环境中安装了Anaconda,可以作为普通用户在shell中成功使用它:
curt@lamp-v5mi:~$ python
Python 2.7.9 |Anaconda 2.2.0 (64-bit)| (default, Mar 9 2015, 16:20:48)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://binstar.org
但是,当我通过sudo python
启动一个解释器时,anaconda不是所使用的解释器,我希望它是。
curt@lamp-v5mi:~$ sudo python
Python 2.7.3 (default, Mar 13 2014, 11:03:55)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
令人困惑的是,当我以root启动shell,然后启动解释器时,anaconda就是所使用的解释器。
curt@lamp-v5mi:~$ sudo -s
root@lamp-v5mi:/home/curt# python
Python 2.7.9 |Anaconda 2.2.0 (64-bit)| (default, Mar 9 2015, 16:20:48)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://binstar.org
我在根帐户和普通帐户的.bashrc
文件中都有export PATH="/anaconda/bin:$PATH"
。起初,我认为问题是sudo python
实际上没有启动根shell,因此export PATH="/anaconda/bin:$PATH"
实际上没有完成。但从我的正常账户来看,我确实看到了水蟒:
curt@lamp-v5mi:~$ sudo echo $PATH
/anaconda/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
anaconda安装是以根用户身份安装在/anaconda
中的,我做了一个chmod -R 770 /anaconda
让普通用户可以访问它,但我认为这个问题与此无关。
从命令行运行时,如何使anaconda成为默认解释器?
你几乎什么都做对了。唯一的错误是
sudo echo $PATH
,其中$PATH在发送到sudo之前被替换,因此显示的是您的用户路径而不是您的“sudoed”路径。注意,您的sudo实现和配置可能会更改PATH变量,因为我可以在“man sudo”中阅读(可以在Internet上找到,因为我没有sudo):
所以,在你的“sudoed”环境中,可能没有
/anaconda/bin/
您可以使用
sudo env | grep PATH
对此进行测试。要允许或更改sudoed环境中的PATH环境变量,我只能将您指向
man sudo
,再次声明:我不是sudo用户。我唯一能让你放弃的是
sudo $(which python)
,就像sudo echo $PATH
,用户将执行$(which python)
,结果是/anaconda/bin/python
,所以实际运行sudo /anaconda/bin/python
,这是另一个“解决方案”。最后,我应该警告您,您可能不想将Python作为根运行,几乎没有有效的理由这样做,所以您的问题可能是一个XY问题:您遇到了第一个问题,您自己得出结论:可以通过将Python作为根运行来解决它,您尝试了sudo,但被sudo更改了
PATH
击中,然后把你的“二级”问题贴在这里。你的“真正问题”是什么?触发“哼,我应该试试sudo”的那个?相关问题 更多 >
编程相关推荐