如果我安装了 2 个 python 版本,如何在命令提示符下更改 python 版本

Posted

技术标签:

【中文标题】如果我安装了 2 个 python 版本,如何在命令提示符下更改 python 版本【英文标题】:How to change python version in command prompt if I have 2 python version installed 【发布时间】:2018-10-25 05:09:40 【问题描述】:

我在我的系统中安装了Anaconda 2 & 3Anaconda 2 包含 python 2.7 & Anaconda 3 包含 python 3.6

我需要使用命令提示符运行我的 python 代码并且我需要使用 python 3.6 当我运行python --version 时,我得到python 2.7.14。如何将其更改为 python 3.6?

【问题讨论】:

只需指定要使用的可执行文件的路径。如果您使用的是 Linux,我认为您可以使用 which 命令? 试试 python3 --version 控制完整python环境的最好方法是使用virtualenv。其余的在这里回答***.com/questions/23842713/… 运行$ python3。这应该会打开一个 python3 交互式提示。 【参考方案1】:

我有两个版本的 python,第一个路径是 python 2(我仍在使用 python 2),但是有一些脚本应该使用 python 3。这就是我所做的: 我已经创建了一个 bat 文件。 前任: 打开记事本++并写:

@echo off
set PYTHONPATH=
"%~dpn0.py" %*

将其保存为“yourscriptname.cmd”。 在我的脚本(应该使用 python3)之前,我只是在命令行中运行这个文件,然后运行我的脚本。它正在工作。

【讨论】:

【参考方案2】:

如果 Anaconda 3 是系统中唯一的 python3 解释器,您可以在命令行中运行 python3 而不是 python,它应该可以工作。

您可以更改 PATH 参数以反转两个解释器的位置。

【讨论】:

【参考方案3】:

我做了一个小技巧来解决这个问题。对我来说

C:\Python27

C:\Python27\脚本

位于 PATH 环境变量列表的顶部。我只是选择了它们并点击Moved Down将它们移到列表的末尾。

只要确保你的 Python3 路径及其 Script 文件夹在 Python2 路径之上即可。

它为我解决了这个问题。希望对你也有帮助。

原因:

cmd如何运行命令?

它在已打开 cmd 的目录中搜索具有相同名称的可执行文件,然后在 Windows PATH 变量中提供的位置(从 TOP 到 BOTTOM)中搜索该命令。这意味着,它在到达 Python3 的路径之前获得了 Python2 的路径。因此,每次您在 cmd 中键入 python 时,它都会运行 Python2。 Python2 和 Python3 可执行文件在 Windows 中具有相同的名称,因此它从不运行 python3。

原因取自该问题的已接受答案。

【讨论】:

【参考方案4】:

如果要运行 Python 3.6,请执行 python3.6。 否则,请检查 which python 到实际 python 可执行文件的符号链接所在的位置。在我的系统上,它是

/usr/bin/python

当我ls -la /usr/bin/python,它给了

lrwxrwxrwx 42 user user 42 Aug 24 03:45 /usr/bin/python -> python2.7

如果您确实确定要这样做,您现在可以将旧符号链接移到某处:

sudo mv /usr/bin/python /usr/bin/old_python

并创建一个新的符号链接:

sudo ln -s /usr/bin/python3.6 /usr/bin/python

现在你应该得到类似的东西:

$ python --version
Python 3.6.5

我不保证它不会破坏世界上的一切,特别是如果你有一些发行版,它的包管理器依赖于python 下的特定 python 版本。

这似乎在 Linux Mint 18 上运行良好。

【讨论】:

【参考方案5】:

如您所见,我已经安装了 Python2 和 Python3。

我希望您知道 python 可执行文件的路径必须添加到 Windows 中的 PATH 环境变量中。可以看到,在我的系统中,Python2的路径放在Python3的路径之上。

cmd如何运行命令? 它在已打开 cmd 的目录中搜索具有相同名称的可执行文件,然后在 Windows PATH 变量中提供的位置(从 TOP 到 BOTTOM)中搜索该命令。 这意味着,它在到达 Python3 的路径之前获得了 Python2 的路径。因此,每次您在 cmd 中键入 python 时,它都会运行 Python2。 Python2 和 Python3 可执行文件在 Windows 中具有相同的名称,因此它从不运行 python3。

什么是显而易见的解决方案? 您可能会想,将 Python3 可执行文件的 python.exe 名称更改为 python3.exe 将解决您的问题。你是部分正确的,它会起作用的。但是你必须使用python3 file.pypython3 --version,我认为这是可以理解的。但是,如果您更改原始 python 可执行文件的名称,pip 将不再起作用。您将无法再安装外部包和模块。

如何解决这个问题? 您可以为 Python3 可执行文件创建一个别名,名为 python3.bat.exe.bat 文件可以直接从 cmd 调用,而无需使用它们的扩展名。我们总是写python filename.py 而不是python.exe filename.py,尽管两者都是正确的。 .bat 文件也可以这样做。 回到第一张图片,注意python.exe 下方的python3.bat 文件。这是我在不重命名原始 python 可执行文件的情况下调用 python3 的方式。

python3.bat 使用记事本或其他东西创建一个新文件并粘贴此%~dp0python %* 我不完全理解这是如何工作的,除了dp0 基本上从同一目录中运行 python 并且%* 将所有参数传递给 python 可执行文件。将此文件放在您的 Python3 安装目录中,您的问题有望得到解决。

python3 基本上运行你的python3.bat 文件,然后从它的文件夹运行python.exe 并将参数传递给它。

我希望这能解决你的问题。

【讨论】:

我曾经搜索过这个问题,但找不到可行的解决方案。这是一个很好的解决方法。【参考方案6】:

您的路径中也应该有python3。你可以使用python3 来运行你的脚本:

python3 <your_script>

但要回答您的问题,您可以使用alias 并将其更新为python

$ python --version    
Python 2.7.6
$ alias python=python3
$ python --version    
Python 3.6.4

【讨论】:

虽然这个答案是正确的,但我认为直接运行python3 而不是创建别名会更好。如果用户将来需要python2,他/她可以直接运行python(这是默认行为)。 因此,答案的第一部分。 :) @akshat 快速问题,当我这样做时,它似乎没有“保存”,当我关闭终端窗口并再次执行 python --version 时,它显示以前的版本 @ArthurLanglois,你可以把它添加到你的 ~/.bashrc【参考方案7】:

为了使用 python 3 运行您的脚本,您可以使用

python3 <path to file>

P.S.:这应该是评论,但我没有所需的声誉。 :)

【讨论】:

不,这里很好。但它并没有完全回答这个问题。即 如何将其更改为 python 3.6 Upsy daisy,看到你的回答我意识到你是对的,这更像是一种解决方法,但它仍然有效。

以上是关于如果我安装了 2 个 python 版本,如何在命令提示符下更改 python 版本的主要内容,如果未能解决你的问题,请参考以下文章

如何查看安装了哪些 Python 模块以及版本? [复制]

Python:如果安装了同一个包的多个egg版本,如何具体导入我需要的版本?

如何安装python

如果在Windows上有两个相同版本的python,如何使用pip安装包

Windows下python2和python3的切换

当它们都需要不同的python版本时如何使用2个python mod