如果我安装了 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 & 3
。 Anaconda 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.py
或python3 --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:如果安装了同一个包的多个egg版本,如何具体导入我需要的版本?