如何同时安装Python 2。3. Python。Windows下的x

我的大部分编程都是用Python 3完成的。但现在我需要使用Python成像库(PIL)、ImageMagick和wxPython,所有这些都需要Python 2.x。

我可以要两个Python 2吗?3. Python。Windows 7?当我运行一个脚本时,我如何“选择”哪个版本的Python应该运行它?上述程序是否能够处理同时安装的多个Python版本?我已经花了好几个小时来寻找如何做到这一点,但无济于事。

谢谢。

245057 次浏览

你可以在一台机器上安装多个版本的Python,在安装过程中,你可以选择让其中一个版本与Python文件扩展名相关联。如果你安装模块,不同版本会有不同的安装包,或者你可以选择你想要的目标版本。由于它们通常将自己安装到解释器版本的site-packages目录中,因此不应该有任何冲突(但我还没有对此进行测试)。要选择python的哪个版本,如果解释器的路径不是默认路径,则必须手动指定。据我所知,它们将共享相同的PATH和PYTHONPATH变量,这可能是一个问题。

注:我使用的是Windows XP。我不知道其他版本是否会有这些变化,但我看不出有任何理由会发生变化。

我有多个版本的windows。 我只是改变了我不是默认版本的exe名称

python.exe——比;python26.exe

pythonw.exe——比;pythonw26.exe

至于软件包安装程序,大多数exe安装程序也允许你选择python安装程序来添加软件包。 对于手动安装,检查——prefix选项来定义包应该安装在哪里:

http://docs.python.org/install/index.html#alternate-installation-windows-the-prefix-scheme

在另一个上面安装最常用的一个(我的例子是3.3)。这将迫使IDLE使用您想要的那个。

或者(来自python3.3 README):

安装多个版本

在Unix和Mac系统上,如果您打算安装多个版本的Python 使用相同的安装前缀(配置脚本的——prefix参数) 类型的可执行文件不会覆盖您的主要python可执行文件 安装不同的版本。所有文件和目录安装使用 "make altinstall"包含主版本和次版本,因此可以存活 并排。"make install"还会创建${prefix}/bin/python3,用于 ${前缀}/ bin / pythonX.Y。方法安装多个版本 同样的前缀,你必须决定哪个版本(如果有的话)是你的“主”版本。 使用“make Install”安装该版本。安装所有其他版本 “使altinstall”。< / p > 例如,如果您想安装Python 2.6, 2.7和3.3,其中2.7是 主版本,您将在2.7构建目录中执行“make install”

我发现这样做的正式方式如下:

只需在Windows 7上安装两个(或两个以上,使用它们的安装程序)版本的Python(对我来说,使用3.3和2.7)。

按照下面的说明,根据需要更改参数。

创建以下环境变量(双击时为默认值):

Name:  PY_PYTHON
Value: 3

要在特定的解释器中启动脚本,添加以下shebang(脚本的开头):

#! python2

要使用特定的解释器执行脚本,请使用以下提示命令:

> py -2 MyScript.py

启动一个特定的解释器:

> py -2

要启动默认解释器(由PY_PYTHON变量定义):

> py

资源

文档:Windows下使用Python

PEP 397 - Windows Python启动器

Windows版本有Python启动器,请参阅3.4节。Windows Python启动器

仅适用于在Python IDE中运行代码

我的windows操作系统上同时安装了Python 2.7和Python 3.3。如果我试图启动一个文件,它通常会在python 2.7 IDE上打开。我如何解决这个问题,是当我选择在python 3.3上运行我的代码时,我打开python 3.3 IDLE(python GUI),选择文件,用IDLE打开我的文件并保存它。然后,当我运行我的代码时,它运行到我当前打开它的IDLE。反之亦然。

如果你不能让其他任何东西工作,打开一个解释器,无论你选择哪个版本(我更喜欢使用iPython),然后:

import subprocess


subprocess.call('python script.py -flags')

这将使用当前运行的python版本。适用于单个脚本,但如果您运行许多脚本,则很快就会失控,在这种情况下,您可以始终在其中创建一个包含所有这些调用的批处理文件。这不是最优雅的回答,但很有效。

是否有一种方法使别名不同的python版本一个la Linux?

我所做的就是下载2.7.6和3.3.4。Python 3.3.4提供了在环境变量中添加路径的选项,这样就完成了。所以基本上我只是手动添加了Python 2.7.6。

如何……

  1. 开始>在环境搜索类型中选择“编辑环境变量到您的帐户”1

  2. 向下滚动到路径,选择路径,单击编辑。

  3. <李> < p >添加C: \ Python27; 所以你应该有两个版本的Python的路径,但如果你没有这个,你可以很容易地编辑它,所以你可以访问.....C: \ Python27; C: \ Python33; < / p > < /李>
  4. 导航到C:\中的Python27文件夹,并将python.exe的副本重命名为python2.exe

  5. 导航到C:\中的Python34文件夹,并将python.exe的副本重命名为python3.exe

  6. 测试:打开命令提示符并输入python2 ....BOOM!Python 2.7.6。退出了。

  7. 测试:打开命令提示符并输入python3 ....BOOM!Python 3.4.3。退出了。

注意:(为了不破坏步骤4和5中的pip命令,将python.exe的副本保存在与重命名文件相同的目录中)

我只需要安装它们。然后我使用“文件类型设置”/“上下文菜单”/search:“py”下http://defaultprogramseditor.com/的免费(和便携式)软,选择.py文件,并通过复制名为“open with IDLE”的现有命令为2 IDLE添加一个“打开”命令,将名称更改为IDLE 3.4.1/2.7.8,并替换程序路径中各自版本的文件编号。现在我只需右键单击.py文件并选择我想使用的IDLE。如果你愿意,也可以找直接口译员。

我自己也遇到过这个问题,我把我的启动器放在。bat中,这样你就可以选择你想要启动的版本。

唯一的问题是你的.py必须在python文件夹中,但不管怎样,这里是代码:

对于Python2

@echo off
title Python2 Launcher by KinDa
cls
echo Type the exact version of Python you use (eg. 23, 24, 25, 26)
set/p version=
cls
echo Type the file you want to launch without .py (eg. hello world, calculator)
set/p launch=
path = %PATH%;C:\Python%version%
cd C:\Python%version%
python %launch%.py
pause

对于Python3

@echo off
title Python3 Launcher by KinDa
cls
echo Type the exact version of Python you use (eg. 31, 32, 33, 34)
set/p version=
cls
echo Type the file you want to launch without .py (eg. hello world, calculator)
set/p launch=
cls
set path = %PATH%:C:\Python%version%
cd C:\Python%version%
python %launch%.py
pause

将它们保存为。bat,并按照里面的说明进行操作。

如果您使用Anaconda Python,您可以轻松地安装各种环境。

假设你已经安装了Anaconda Python 2.7,你想要一个Python 3.4环境:

conda create -n py34 python=3.4 anaconda

然后激活环境:

activate py34

以及deactive:

deactivate py34

(在Linux中,你应该使用source activate py34。)

链接:

< a href = " http://continuum。 . io/downloads" rel="noreferrer">下载Anaconda Python . io/downloads" rel="noreferrer">

环境说明 .

以下是你可以做的:

< p >安装cmd。 打开并使用cmd终端,就像你会使用cmd终端一样。

.使用命令别名创建命令别名

我做了以下事情:

alias python2 = c:\python27\python.exe
alias python3 = c:\python34\python.exe

就是这样!: -)

安装Python后检查系统环境变量,首先在PATH变量中应该是python3的目录,然后是python2。

最先匹配的路径变量就是Windows使用的路径变量。

一如既往,py -2将在此场景中启动python2。

我刚想到一个有趣的解决办法。虽然Windows不允许您轻松地别名程序,但您可以创建重命名的批处理文件来调用当前程序。

不要重命名可执行文件,这会破坏很多东西,包括pip,而是在与python2.exe相同的目录中创建python2.bat文件。然后添加如下一行:

%~dp0python %*

这个古老的语法是什么意思?嗯,这是一个批处理脚本(bash的Windows版本)。%~dp0获取当前目录,%*将把传递给脚本的所有参数传递给python。

对python3.bat重复此步骤

您也可以为pip和其他实用程序做同样的事情,只需将文件中的python替换为pip或任何文件名。别名将是文件命名的任何内容。

最棒的是,当添加到PATH时,Windows会忽略正在运行的扩展名

python3

将启动python3版本,而命令python2将启动python2版本。

顺便说一句,这与Spyder用于将自己添加到Windows上的路径的技术相同。:)

我在自己安装了Python 2.7和Python 3.4的windows计算机上所做的是,我在与Python.exe文件相同的目录下编写了一个简单的。bat文件。它们看起来像,

cmd /k "c:\python27\python.exe" %*

%*允许您随后添加参数(Python文件)。我相信/k在运行完脚本后会保持提示打开。然后我将其保存为python27.bat,然后我进入Python 3目录并在那里创建一个bat文件。现在我可以在命令行中写了

Python27 helloworld.py

Python34 helloworld.py

它们将在各自版本的Python中运行。确保c: \ python27c: \ python34在环境变量中。

我从在这里得到了答案

我按照这里的说明分三步完成了这一步:这都是从这里直接获取的:http://ipython.readthedocs.io/en/stable/install/kernel_install.html。我目前正在运行Python 2。已安装Anaconda 4.2.13。

1)首先安装最新版本的python:

conda create -n python3 python=3 ipykernel

2)下一步激活python3

activate python3

3)安装内核:

python -m ipykernel install --user

如果你已经安装了python3,想要安装python2,请切换上面的python2和python3。当你打开一个新的笔记本时,你现在可以在python2或python3之间进行选择。

我已经在windows 10pro上安装了python 2.7.13和python 3.6.1,当我尝试pip2或pip3时,我得到了相同的“致命错误”。

为了纠正这一点,我去python2和python3文件的python.exe的位置,并为每个文件创建一个副本,然后根据安装文件夹中的python版本将每个副本重命名为python2.exe和python3.exe。因此,我在每个python安装文件夹中都有一个python.exe文件和一个python2.exe或python3.exe,这取决于python版本。

当我输入pip2或pip3时,这解决了我的问题。

要在同一系统中安装和运行任何版本的Python,请遵循下面的指南。


例如,假设你想安装Python 2。3. Python。x在同一个Windows系统上。

  1. 将它们的二进制版本安装在任何你想要的地方。

    • 当提示不注册他们的文件扩展名和
    • 是否自动将它们添加到PATH环境变量
    • 李< / ul > < / >
    • 简单地运行命令python,首先在PATH中遇到的可执行文件将被选择用于启动。换句话说,手动添加Python目录。当你输入python时,你首先添加的将会被选中。连续的python程序(增加它们的目录在PATH中的顺序)将像这样选择:

      • 第二个python . py -2
      • py -3用于第三个python等。
      • 李< / ul > < / >
      • 无论“pythons”的顺序如何,你都可以:

        • 运行Python 2。py -2 (Python 3. . x)X功能)(即。第一个Python 2。在您的PATH中找到的安装程序将被选中)
        • 运行Python 3。X脚本使用命令:或py -3(即。第一个Python 3。在您的PATH中找到的安装程序将被选中)
        • 李< / ul > < / >

在我的例子中,我先安装了Python 2.7.14,然后安装了Python 3.5.3。这是我的PATH变量的开头:

PATH=C:\Program Files\Microsoft MPI\Bin\;C:\Python27;C:\Program Files\Python_3.6\Scripts\;C:\Program Files\Python_3.6\;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Intel\Shared

...

请注意,Python 2.7是第一个,Python 3.5是第二个。

  • 因此,运行python命令将启动python 2.7(如果python 3.5,同样的命令将启动python 3.5)。
  • 运行py -2将启动Python 2.7(因为恰好第二个Python是Python 3.5,与py -2不兼容)。 运行py -3将启动Python 3.5(因为它是Python 3.x)
  • 如果稍后在路径中有另一个python,则会像这样启动:py -4。如果/当Python版本4发布时,这可能会改变。

现在py -4py -5等在我的系统输出:Requested Python version (4) not installedRequested Python version (5) not installed等。

希望这已经足够清楚了。

我使用一个简单的解决方案从一个版本切换到另一个版本的python,你可以安装所有你想要的版本。你所要做的就是创造一些可变的环境。 在我的例子中,我已经安装了python 2.7和python 3.8.1,所以我已经创建了这个环境变量:

< p > PYTHON_HOME_2.7 = & lt; path_python_2.7> PYTHON_HOME_3.8.1 = & lt; path_python_3.8.1> PYTHON_HOME = % PYTHON_HOME_2.7% < / p >

那么在我的路径环境变量中,我只放% PYTHON_HOME %% PYTHON_HOME % \脚本。在上面的例子中,我使用的是2.7版本,当我想切换到其他版本时,我只需要设置PYTHON_HOME=%PYTHON_HOME_3.8.1%。 我使用这种方法可以快速地从一个版本切换到另一个版本,也可以用于JAVA、MAVEN、GRADLE、ANT等