我在Windows 7上使用Python 3.x进行大部分编程,但是现在我需要使用Python Imaging Library(PIL),ImageMagick和wxPython,所有这些都需要Python2.x。
我可以在Windows 7中同时安装Python 2.x和Python 3.x吗?运行脚本时,如何“选择”应该运行哪个版本的Python?前面提到的程序能否处理一次安装的多个版本的Python?我已经搜索了数小时,但无济于事。
谢谢。
我在Windows 7上使用Python 3.x进行大部分编程,但是现在我需要使用Python Imaging Library(PIL),ImageMagick和wxPython,所有这些都需要Python2.x。
我可以在Windows 7中同时安装Python 2.x和Python 3.x吗?运行脚本时,如何“选择”应该运行哪个版本的Python?前面提到的程序能否处理一次安装的多个版本的Python?我已经搜索了数小时,但无济于事。
谢谢。
Answers:
我发现执行此操作的正式方法如下:
只需在Windows 7上安装两个(或多个,使用其安装程序)Python版本(对我来说,使用3.3和2.7)。
请遵循以下指示,根据需要更改参数。
创建以下环境变量(默认为双击):
Name: PY_PYTHON
Value: 3
要在特定的解释器中启动脚本,请添加以下shebang(脚本开始):
#! python2
要使用特定的解释器执行脚本,请使用以下提示命令:
> py -2 MyScript.py
要启动特定的解释器:
> py -2
要启动默认解释器(由PY_PYTHON变量定义):
> py
资源资源
PEP 397-适用于Windows的Python启动器
c:\python35;c:\python35\scripts;c:\python27\scripts;
。这允许使用pip2
/ pip3
和easy_install-2.7
/ easy_install-3.5
代替pip
and easy_install
。
py -m pip install ...
。之后添加开关,py
以选择要在上面运行pip的Python。
我所做的是下载了2.7.6和3.3.4。Python 3.3.4可以选择在环境变量中添加路径。所以基本上我只是手动添加了Python 2.7.6。
如何...
开始>在环境中的搜索类型中,选择“将环境变量编辑到您的帐户” 1
向下滚动到路径,选择路径,然后单击编辑。
添加C:\ Python27; 因此,您应该在那里拥有两个版本的Python的路径,但是如果没有,则可以轻松地对其进行编辑,以便您执行..... C:\ Python27; C:\ Python33;
导航到C:\中的Python27文件夹,并将python.exe的副本重命名为python2.exe
导航到C:\中的Python34文件夹,并将python.exe的副本重命名为python3.exe
测试:打开命令提示符并输入python2 .... BOOM!Python 2.7.6。退出。
测试:打开命令提示符并输入python3 .... BOOM!Python 3.4.3。退出。
注意:(为了避免在第4步和第5步中破坏pip命令,请将python.exe的副本保留在与重命名文件相同的目录中)
我在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
pip3
和pip3.4
。(它也将其包含为pip
,但我认为删除应该可以解决与python2的任何冲突)。其实我没有C:\Python34\Scripts
我的Path
,所以我没有任何PIP相关的问题...
如果使用Anaconda Python,则可以轻松安装各种环境。
假设您已安装Anaconda Python 2.7,并且想要一个Python 3.4环境:
conda create -n py34 python=3.4 anaconda
然后激活环境:
activate py34
并停用:
deactivate py34
(对于Linux,您应该使用 source activate py34
。)
链接:
要在同一系统中安装和运行任何版本的Python,请遵循以下指南。
例如,说您想在同一Windows系统上安装Python 2.x和Python3.x。
在需要的任何位置安装它们的两个二进制发行版。
仅运行命令python
,便会选择要在PATH中首次遇到的可执行文件进行启动。换句话说,手动添加Python目录。键入时,将选择第一个添加的对象python
。像这样选择连续的python程序(将其目录放置在PATH中的顺序增加):
python
python
等等。无论“ pythons”的顺序如何,您都可以:
在我的示例中,我先安装了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) py -4
。如果/当发布Python版本4时,这可能会更改。现在py -4
或py -5
等在我的系统上输出:Requested Python version (4) not installed
或Requested Python version (5) not installed
等。
希望这已经足够清楚了。
pip
。对于安装的任何其他python,您必须手动指定路径,即。C:\Python27\Scripts\pip.py [parameters]
。(当然,作为一种快捷方式,您可以将所需的任何exe放在环境变量中。)
从3.3版开始,Windows版具有Python启动器,请查看3.4节。适用于Windows的Python启动器
您可以执行以下操作:
安装cmder。像使用cmd终端一样打开并使用Cmder。使用命令别名来创建命令别名。
我做了以下事情:
alias python2 = c:\python27\python.exe
alias python3 = c:\python34\python.exe
就是这样!;-)
set-alias python2 c:\python27\python.exe
我实际上只是想到了一个有趣的解决方案。尽管Windows不允许您轻松给程序加上别名,但是您可以创建重命名的批处理文件来调用当前程序。
不要重命名可执行文件,否则将破坏很多东西,包括pip,请在与python2.exe相同的目录中创建文件python2.bat。然后添加以下行:
%~dp0python %*
这个古老的语法是什么意思?好吧,这是一个批处理脚本(Windows版本的bash)。%〜dp0获取当前目录,%*会将所有传递给脚本的参数传递给python。
对python3.bat重复
您还可以对pip和其他实用程序执行相同的操作,只需将文件中的python单词替换为pip或任何文件名即可。别名将是文件的名称。
最好的是,Windows添加到PATH时会忽略扩展名,因此运行
python3
将启动python3版本,命令python2将启动python2版本。
顺便说一句,这与Spyder用于将自身添加到Windows上的路径的技术相同。:)
您可以在一台计算机上安装多个版本的Python,并且在安装过程中可以选择让其中一个与Python文件扩展名关联。如果安装模块,则将有不同版本的安装程序包,或者您可以选择要定位的版本。由于他们通常会将自己安装到解释器版本的site-packages目录中,因此不应有任何冲突(但我尚未对此进行测试)。要选择哪个版本的python,您必须手动指定解释器的路径(如果它不是默认路径)。据我所知,它们将共享相同的PATH和PYTHONPATH变量,这可能是一个问题。
注意:我运行Windows XP。我不知道其他版本是否会发生任何更改,但我看不出会有任何原因。
我在装有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:\ python27和C:\ python34在您的环境变量。
我从这里得到答案
我按照此处的说明分三个步骤进行了操作:全部直接从此处获取:http : //ipython.readthedocs.io/en/stable/install/kernel_install.html。我目前在Windows 8上运行Python 2.x,并安装了Anaconda 4.2.13。
1)首先安装最新版本的python:
conda create -n python3 python=3 ipykernel
2)接下来激活python3
activate python3
3)安装内核:
python -m ipykernel install --user
如果您已经安装了Python 3并且想要安装2,请切换上面的2和3。当您打开一个新笔记本时,现在可以在Python 2或3之间进行选择。
我自己遇到了这个问题,我在.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并按照其中的说明进行操作。
将最常用的一个(在本例中为3.3)安装在另一个的顶部。这将迫使IDLE使用您想要的那个。
或者(来自python3.3自述文件):
在Unix和Mac系统上,如果要使用相同的安装前缀(配置脚本的--prefix参数)安装多个版本的Python,则必须注意,安装其他版本不会覆盖您的主要python可执行文件。使用“ make altinstall”安装的所有文件和目录都包含主要版本和次要版本,因此可以并行存在。“ make install”还会创建$ {prefix} / bin / python3,它引用了$ {prefix} /bin/pythonX.Y。如果打算使用相同的前缀安装多个版本,则必须确定哪个版本(如果有)是您的“主要”版本。使用“进行安装”安装该版本。使用“ make altinstall”安装所有其他版本。
例如,如果要安装Python 2.6、2.7和3.3,而2.7是主要版本,则可以在2.7构建目录中执行“ make install”,在其他构建目录中执行“ make altinstall”。
我只需要安装它们。然后,我在http://defaultprogramseditor.com/的 “文件类型设置” /“上下文菜单” /搜索:“ py”下使用了免费的(可移植的)软件,选择了.py文件,并为该文件添加了“打开”命令2 IDLE,方法是复制名为“用IDLE打开”的现有命令,将名称更改为IDLE 3.4.1 / 2.7.8,并在程序路径中重新复制各个版本的文件号。现在,我只需右键单击.py文件,然后选择我要使用的IDLE。如果愿意,可以使用直接口译员做同样的事情。
我在Windows 10pro上同时安装了python 2.7.13和python 3.6.1,当我尝试使用pip2或pip3时,出现了同样的“致命错误”。
我所做的纠正操作是转到python.exe的python 2和python 3文件的位置,并为每个文件创建一个副本,然后根据其中的python版本,将每个副本重命名为python2.exe和python3.exe。安装文件夹。因此,我在每个python安装文件夹中都有python.exe文件和python2.exe或python3.exe(取决于python版本)。
当我键入pip2或pip3时,这解决了我的问题。