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

How to change python version in command prompt if I have 2 python version installed

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

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


Both Python2 and Python3 is installed
如您所见,我安装了Python2和Python3。

Windows Path variable
我希望你知道python可执行文件的路径必须添加到Windows中的PATH环境变量中。如您所见,Python2的路径位于我系统中Python3的路径之上。

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

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

怎样才能解决这个问题?
您可以为名为python3.bat的Python3可执行文件创建别名。
可以直接从cmd调用.exe.bat文件,而无需使用其扩展名。虽然两者都是正确的,但我们总是写python filename.py而不是python.exe filename.py.bat文件也可以这样做。
返回第一张图片,注意python.exe下面的python3.bat文件。这是我调用python3的方式而不重命名我原来的python可执行文件。

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

Python and Python3
python3基本上运行你的python3.bat文件,该文件又从其文件夹运行python.exe并将参数传递给它。

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


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

1
python3 <your_script>

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

1
2
3
4
5
$ python --version    
Python 2.7.6
$ alias python=python3
$ python --version    
Python 3.6.4


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

1
/usr/bin/python

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

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

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

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

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

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

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

1
2
$ python --version
Python 3.6.5

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

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


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

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


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

1
python3 <path to file>

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