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

时间:2018-05-15 11:23:59

标签: python

我在我的系统中安装了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?

7 个答案:

答案 0 :(得分:4)

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文件也可以这样做 返回第一张图片,注意python3.bat下面的python.exe文件。这是我调用python3的方式而不重命名我原来的python可执行文件。

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

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

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

答案 1 :(得分:2)

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

python3 <your_script>

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

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

答案 2 :(得分:0)

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

python3 <path to file>

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

如果要运行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 :(得分:0)

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

C:\ Python27

C:\ Python27 \ Scripts

位于PATH环境变量列表的顶部。我只是选择了它们,然后单击下移将其移到列表的末尾。

只需确保您的Python3及其Script文件夹路径在Python2路径上方。

它为我解决了问题。希望它也会对您有帮助。

原因:

cmd如何运行命令?

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

原因是从该问题的公认答案中得出的。

答案 6 :(得分:0)

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

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

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