我使用的是 Mac OS X 版本 10.13.1,我刚刚安装了 anaconda。我已经使用命令创建了一个虚拟环境
conda create -n py3 python=3
Run Code Online (Sandbox Code Playgroud)
然后,我使用命令启动了 python 解释器
python
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,来自 /usr/bin 的预装 python 2.7 出现了,而不是 python 3.6。为了检查出了什么问题,我发出了命令
which python
Run Code Online (Sandbox Code Playgroud)
结果更令人惊讶,我得到了以下信息:
/Users/karlstroetmann/anaconda2/envs/py3/bin/python
Run Code Online (Sandbox Code Playgroud)
当我然后调用命令时
/Users/karldrstroetmann/anaconda2/envs/py3/bin/python
Run Code Online (Sandbox Code Playgroud)
我确实得到了 python 3.6.3。但我不明白为什么我不能通过键入python
. 我在这里缺少什么?任何提示将不胜感激。
该python
命令很可能已被散列,您需要清除缓存。为了查看实际运行的可执行文件,您可以使用以下type
命令,例如:
type -a python
Run Code Online (Sandbox Code Playgroud)
与which
命令不同的是,该type
命令可以识别散列程序,以及别名和 shell 函数。
有关使用哪些(无双关语)命令来确定 shell 执行哪些程序的进一步讨论,请参阅以下帖子:
或者,您也可以使用hash
命令本身来确定给定的命令是否已被散列,例如:
hash -t python
Run Code Online (Sandbox Code Playgroud)
您还可以通过hash
不带任何参数运行来列出所有散列命令,即:
hash
Run Code Online (Sandbox Code Playgroud)
同样,您可以使用该alias
命令来检查给定的命令是否是别名,例如:
alias python
Run Code Online (Sandbox Code Playgroud)
您还可以列出所有活动别名:
alias
Run Code Online (Sandbox Code Playgroud)
要清除缓存的 Python 程序,您可以使用以下命令:
hash -d python
Run Code Online (Sandbox Code Playgroud)
或者,您可以一次清除所有内容:
hash -r
Run Code Online (Sandbox Code Playgroud)
要清除单个别名,您可以使用该unalias
命令,例如:
unalias python
Run Code Online (Sandbox Code Playgroud)
或者您可以一次清除所有别名:
unalias -a
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13259 次 |
最近记录: |