【问题标题】:How to change python version in command prompt if I have 2 python version installed如果我安装了 2 个 python 版本,如何在命令提示符下更改 python 版本
【发布时间】: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。其余的在这里回答stackoverflow.com/questions/23842713/…
  • 运行$ python3。这应该会打开一个 python3 交互式提示。

标签: python


【解决方案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,看到你的回答我意识到你是对的,这更像是一种解决方法,但它仍然有效。
          猜你喜欢
          • 2019-01-26
          • 2019-12-24
          • 2016-02-27
          • 2015-08-17
          • 2012-02-13
          • 2020-09-21
          • 1970-01-01
          • 1970-01-01
          • 2011-08-31
          相关资源
          最近更新 更多