在一个Python环境中,我输入whereis python
,并获取以下信息
python: /usr/bin/python2.6 /usr/bin/python2.6-config
/usr/bin/python /usr/lib/python2.6 /usr/lib64/python2.6
/usr/X11R6/bin/python2.6 /usr/X11R6/bin/python2.6-config
/usr/X11R6/bin/python /usr/bin/X11/python2.6
/usr/bin/X11/python2.6-config /usr/bin/X11/python
/usr/include/python2.6 /usr/share/man/man1/python.1.gz
但是当我输入python --version
时,它会返回Python 3.4.5
whereis python
和python --version
之间是否存在矛盾?令我困惑的是因为whereis python
的结果包含多个文件夹名称,包括python2.6
。
除上述信息外,我还尝试了which
和alias python
bash-4.1$ which python
/devl/tf_0.12/bin/python
bash-4.1$ alias python
bash: alias: python: not found
答案 0 :(得分:3)
没有矛盾。 whereis 查看 PATH 环境变量中提供的所有路径,标识包含可执行 python 命令的每个目录。
另一方面,python --version 会调用shell消除歧义规则所指示的 python ( PATH 只是一个因素),并报告该可执行文件的版本。检查别名和其他环境设置以了解 python 的本地含义,例如
alias python
这是否澄清了这个谜团?
对问题编辑的回复
这告诉我们shell将命令 python 解析为特定的可执行文件 /devl/tf_0.12/bin/python 。我不知道 / devl 中的内容是什么这不是我所熟悉的任何基于UNIX的世界的标准位置。但是,如果您运行/devl/tf_0.12/bin/python -- version
,您应该会看到之前看到的相同的3.4.5。