在一个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
最佳答案
没有矛盾。 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。
关于python - whereis python 和 python --version 之间的矛盾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43334455/