你如何在python 2和3之间切换,反之亦然?

问题描述 投票:34回答:11

我正在阅读如何学习Python的艰难之路,它使用2.最近发现的使用Python的Invent,它使用3。

我可以下载python 3,并在阅读Invent With Python时使用它,然后当我想阅读如何学习Python的艰难之路时切换回python 2。如果是这样,我如何选择使用哪个版本?

python python-3.x python-2.6
11个回答
23
投票

使用'virtualenv',您可以在一台机器上拥有不同的独立Python环境。您也可以在不同的python解释器版本之间切换任何时间。

什么是virtualenv?

虚拟环境是Python的独立工作副本,它允许您处理特定项目而无需担心影响其他项目。它支持Python的多个并排安装,每个项目一个。它实际上并没有安装Python的单独副本,但它确实提供了一种巧妙的方法来隔离不同的项目环境。

如何安装?

pip install virtualenv

为python 2.7创建虚拟环境:

root:~# which python2.7

/usr/bin/python2.7

root:~# which python3.4

/usr/local/bin/python3.4

您还可以使用您选择的Python解释器:

root:~# virtualenv -p /usr/bin/python2.7 Vpy27

Running virtualenv with interpreter /usr/bin/python2.7

New python executable in /root/Vpy27/bin/python2.7

Also creating executable in /root/Vpy27/bin/python

Installing setuptools, pip, wheel...done.

要开始使用虚拟环境,需要激活它:

root:~# source Vpy27/bin/activate

现在,虚拟环境的名称将显示在提示的左侧:

(Vpy27) root:~# python -V
Python 2.7.3

像往常一样安装软件包,例如:

(Vpy27) root:~# pip install junos-eznc    >> All pip installs done here, will be available only in this environment.

如果您暂时在虚拟环境中工作,可以将其停用:

(Vpy27) root:~# deactivate   

为python 3.4创建虚拟环境:

root:~# which python3.4

/usr/local/bin/python3.4

root:~# virtualenv -p /usr/local/bin/python3.4 Vpy34

root:~# source Vpy34/bin/activate

(Vpy34) root:~# python -V
Python 3.4.4

还有一种方法可以使用已有的站点包创建虚拟环境。


0
投票

到目前为止我已尝试过6种解决方案,例如:

virtualenv --python=python py27env
mkvirtualenv --python=python3 py3env etc..

也使用virtualenvwrapper包等。他们都没有工作。

我的Windows 10机器上有Python 3.6和Python2.7,所以我将C:\ Python27 \ python.exe重命名为python2.exe,将C:\ Python36 \ python.exe重命名为python3.exe,或者你甚至可以使用python36.exe格式。当然C:\ Python27,C:\ Python27 \ Scripts,C:\ Python36,C:\ Python36 \ Scripts添加到Environment Variables PATH。

(1)对于python3,只需输入:

python3 -m virtualenv venv3

(2)转到venv文件夹,激活它:

脚本\ activate.bat

(3)(venv3)显示它被激活:

(venv3) HOME1@PC C:\Builts\venv3

(4)然后检查它是否真的是3.6:

python --version

Python 3.6.0

对于python2:

python2 -m virtualenv venv2

结果:

(venv2) HOME1@PC C:\Builts\venv2
python --version
Python 2.7.9

我希望它会有所帮助。


0
投票

这是我的2美分。

如果您使用的是基于unix的系统(Ubuntu等),那么您目前拥有python 2.x.继续从Python.org下载python 3.x.

安装后,它将创建一个单独的目录python3

你完成了。

要使用python2.x运行程序,请使用python filename.py

要使用python3.x运行程序,请使用python3 filename.py

同样,启动python2.xpython 3.x翻译分别使用pythonpython3

我看到一些答案指向virtualenv,我不认为这是你要求的,virtualenv用于隔离Python环境。


12
投票

取决于您的系统/平台......

我目前正在使用Ubuntu 10.10并安装了2.6和3.1。默认系统python是2.6,python3作为附加包安装。

corey@studio17:~$ python
Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
corey@studio17:~$ python3
Python 3.1.2 (release31-maint, Sep 17 2010, 20:27:33) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

同样,在Windows上,我安装了2.6和3.1(在C:\ Python26和C:\ Python31中)

容易来回切换。


另外..你需要注意的是2.x和3.x之间存在一些语法差异(print是一个函数等)。


3
投票

我在使用Python 3.5和2.7的Windows 10上。使用PowerShell,这是我在不同版本之间切换的方式。

############################################################
# Switch to Python 2.7
############################################################

# Remove python 3.5 from PATH
$current_path = [Environment]::GetEnvironmentVariable("Path", "User")
$python3_path = "C:\Users\REPLACEUSER\AppData\Local\Programs\Python\Python35-32\Scripts\;C:\Users\REPLACEUSER\AppData\Local\Programs\Python\Python35-32\;"
$new_path = $current_path.replace($python3_path, "")
[Environment]::SetEnvironmentVariable("Path", $new_path, "User")

# Add python 2.7 to PATH
# Run PowerShell as administrator
$current_path = [Environment]::GetEnvironmentVariable("Path", "Machine")
$python2_path = "C:\Python27\;C:\Python27\Scripts;"
$new_path = $python2_path + $current_path
[Environment]::SetEnvironmentVariable("Path", $new_path, "Machine")

# Restart PowerShell to see change

# Confirm change
python --version


############################################################
# Switch to Python 3.5
############################################################

# Remove python 2.7 from PATH
# Run PowerShell as administrator
$current_path = [Environment]::GetEnvironmentVariable("Path", "Machine")
$python2_path = "C:\Python27\;C:\Python27\Scripts;"
$new_path = $current_path.replace($python2_path, "")
[Environment]::SetEnvironmentVariable("Path", $new_path, "Machine")

# Add python 3.5 to PATH
$current_path = [Environment]::GetEnvironmentVariable("Path", "User")
$python3_path = "C:\Users\REPLACEUSER\AppData\Local\Programs\Python\Python35-32\Scripts\;C:\Users\REPLACEUSER\AppData\Local\Programs\Python\Python35-32\;"
$new_path = $python3_path + $current_path
[Environment]::SetEnvironmentVariable("Path", $new_path, "User")

# Restart PowerShell to see change

# Confirm change
python --version

请注意,您需要更新路径以反映您的Python版本和用户配置文件。


1
投票

* nix系统上的几种方式:

  • 安装到单独的目录(例如/ usr / local / python2和/ usr / local / python3)并创建一个链接(例如/ usr / bin / python),您可以将其更改为指向要使用的任何可执行文件。
  • 与上面相同的安装,但设置单独的python命令(例如/ usr / bin / python2和/ usr / bin / python3)并在你想调用python时调用它们。或者让python命令默认为其中一个,另一个是pythonN(N = 2或3,不是默认值)。

1
投票

是的你可以。至少在我的机器上(Vista),v2和v3有完全独立的空闲,允许我在我喜欢的时候运行我感觉到的任何版本。所以继续下载v3。


1
投票

在Windows 10中,它比上面的用户给出的要容易得多。

将版本安装在单独的文件夹中,然后转到环境变量并为这两个版本添加路径。

现在,只要你想运行特定版本,只需更改其顺序(路径)并将其移至其他版本的顶部,然后重新启动cmd并输入python这次,您将看到只有特定版本的python才会运行。

How to switch between python 2 and 3

例如在我的情况下,我在anaconda(v3.0.6)中有两个版本的python,另一个是python 2.7

任何时候我想运行2.7我将其路径移到anaconda版本之上,正如您在上面的屏幕截图中看到的那样,当我想运行anaconda版本时将其移动到下方。


1
投票

如果您使用的是anaconda:

创建一个名为py2的Python 2环境,安装Python 2.7:

conda create --name py2 python=2.7

激活并使用Python 2环境:

视窗:

activate py2

LINUX,macOS:

source activate py2

停用Python 2环境:

视窗:

deactivate

macOS,LINUX:

source deactivate

同样对于py3

创建一个名为py3的Python 3环境,安装Python 3.5:

conda create --name py3 python=3.5

等等..


0
投票

在Windows上,Python launcher可以为您完成此操作。

PEP文章说:

Shebang线解析

如果第一个命令行参数不以短划线(' - ')开头,则会尝试将该参数作为文件打开,并根据[1]中的规则解析为shebang行::

#! interpreter [optional-arg]

所以只需在Python脚本的开头添加一个shebang,如下所示:

#! python3
#coding=utf-8

import sys
print(sys.version)
...

或者您可以将命令行参数传递给py.exe启动器:

C:\Users\Administrator>py -3 my_script.py

C:\Users\Administrator>py -2 my_script.py

0
投票

如果你使用的是Windows 10并且有python 2.x和3.x.

  1. 打开控制面板>系统和安全>系统
  2. 单击高级系统设置。
  3. 单击环境变量。
  4. 单击路径并编辑,然后在上面创建您不想使用的python版本的路径[通过单击moveu向上按钮]
  5. 重启powershell。
  6. python --version
© www.soinside.com 2019 - 2024. All rights reserved.