【问题标题】:What is the difference between 'py' and 'python' in the Windows terminal?Windows 终端中的“py”和“python”有什么区别?
【发布时间】:2018-11-26 12:48:57
【问题描述】:

为什么'py'和'python'有区别,当我使用pip通过命令安装模块时:

python -m pip install [Mod]

要么

py -m pip install [Mod]

当我使用 Python IDLE 时,这些模块不可用。 此外,当我检查

sys.path

'python' 和 'py' 是不同的。如何使它们都相同,并且在安装模块时,安装到它们都可以访问的同一文件夹中。

编辑:

我忘了在 windows 上提到这一点。 所以无论如何,我执行了

python -V

它说版本是“Python 3.6.4:: Anaconda, Inc”

同时:

py -V

给出“Python 3.6.5”。有多大区别?如果它们是相同的版本(3.6),为什么它们有不同的路径?

【问题讨论】:

    标签: python windows pip


    【解决方案1】:

    在 Windows 上

    python 是 Python 安装的 Python 可执行文件,您在安装期间选择了默认设置。这基本上是将该版本的路径放在 PATH 中,以便可执行文件直接可用。

    pyPython 启动器,它是 Windows 上安装 Python 时附带的实用程序。它被安装到 C:\Windows\ 中,因此无需修改 PATH 即可使用。 Python 启动器检测您的机器上安装了哪些 Python 版本,并能够自动委托给正确的版本。默认情况下,它将使用您机器上的最新 Python 版本。因此,如果您安装了 2.7、3.5 和 3.6,运行py 将启动 3.6。您还可以通过执行例如指定不同的版本py -3.5 启动 3.5,或 py -2 在您的计算机上启动最新的 Python 2 版本。

    您可以阅读有关启动器的更多信息in the documentation

    这些天来,我个人从未将 Python 直接放在我的 PATH 中。我只对所有事情都使用启动器,因为这让我可以更好地控制将要启动的 Python。如果您看到py -m pip install 不会为您使用 IDLE 运行的 Python 版本安装模块,您应该检查有哪些版本。每个 Python 安装都有自己的目录,其中安装了 pip 模块。所以如果你例如启动 Python 3.5 的 IDLE,您需要确保您还使用 Python 3.5 运行 pip(例如 py -3.5 -m pip install)。

    在 Linux 上

    python 是您机器上默认 Python 安装的符号链接。对于许多 Linux 机器,这只会是 Python 2。即使不再附带 Python 2 但只提供 Python 3 的发行版也不会将 python 用于 Python 3,因为工具的一般期望是 python 是 Python 2. 所以他们可能只有一个python3 符号链接。

    py 通常在 Linux 上不存在,除非您自己设置别名或符号链接。您可以通过which pythonwhich py 查看这些命令的实际含义。


    蟒蛇

    您使用的 Python 版本来自 Anaconda,这是一个针对数据科学家的不同 Python 发行版,捆绑了很多东西。它使用不同的 Python 版本,与 python.org 提供的官方 CPython 版本不同。我假设默认情况下这些版本根本无法通过 Python 启动器获得。

    【讨论】:

      【解决方案2】:

      @poke 给出了一个很好的答案。我想补充一点,您可以在 Python 文件的顶部添加一个 #!/usr/bin/env python2 注释,告诉它要使用哪个版本的 Python。

      python 命令行命令忽略注释。 py 解析评论并使用正确的版本。

      就我个人而言,我将使用py 来执行文件。

      猜你喜欢
      • 1970-01-01
      • 2019-08-15
      • 1970-01-01
      • 2018-06-22
      • 1970-01-01
      • 2014-05-06
      • 2015-09-28
      • 2014-05-19
      相关资源
      最近更新 更多