python - whereis python 和 python --version 之间的矛盾

标签 python python-2.7 python-3.x

在一个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 pythonpython --version 之间是否存在矛盾。让我感到困惑的是, whereis python 的结果包括几个文件夹名称,包括 python2.6

除了上述信息之外,我还尝试了 whichalias 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/

相关文章:

python - 尝试检索搁置类时的 KeyError 和 AtributeError - Python 3.6

Python 函数 - 循环字典并更新值

python - 在 Django 代理中间件中允许逐跳 header

Python - 主程序的插件

python - 将 python 列表拆分为其他 "sublists"即较小的列表

python - 将整数数组转换为 unicode

python - 如何处理来自 Python 中另一个类的小部件命令/函数调用?

javascript - 显示代码的 Django 模板

python - 通过在 python 列表中解析获取字符串

python - 记录元数据时忽略(跳过)损坏的文件并继续执行其余操作