为什么' py'之间存在差异?和' python',当我用pip通过命令安装模块时:
python -m pip install [Mod]
要么
py -m pip install [Mod]
当我使用Python IDLE时,模块不可用。 此外,当我检查
时sys.path
对于蟒蛇和蟒蛇来说,它们都有所不同。和' py。如何制作它们以使它们都相同,并且在安装模块时,安装到可以访问它们的同一文件夹中。
编辑:
我忘了在 windows 上提到这个。 所以无论如何,我执行了
python -V
它说版本是" Python 3.6.4 :: Anaconda,Inc"
虽然:
py -V
给出" Python 3.6.5 "。有多大差异?如果它们是相同版本(3.6),为什么它们有不同的路径?
答案 0 :(得分:9)
python
是Python安装的Python可执行文件,您在安装过程中将其选为默认值。这基本上将该版本的路径放在PATH中,以便可执行文件直接可用。
py
是 Python启动器,它是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
)。
python
是计算机上默认Python安装的符号链接。对于许多Linux机器,这只是Python 2.即使是不再附带Python 2但仅发布Python 3的发行版也不会将python
用于Python 3,因为工具的一般期望是{{1}是一个Python 2.所以他们可能只有一个python
符号链接。
python3
,除非您自己设置别名或符号链接。您可以查看py
和which python
,了解这些命令究竟是什么。
您使用的Python版本来自Anaconda,这是一个针对数据科学家的不同Python发行版,它捆绑了很多东西。它使用与python.org中提供的官方CPython版本不同的不同Python版本。我假设默认情况下这些版本不会通过Python启动程序提供。
答案 1 :(得分:1)
@poke提供了一个很好的答案。我想补充一下,您可以在Python文件的顶部添加一个#!/usr/bin/env python2
注释,以告诉它要使用的Python版本。
python
命令行命令将忽略注释。 py
解析注释并使用正确的版本。
我个人将使用py
来执行文件。