45

我正在阅读 How To Learn Python The Hard Way,它使用 2。最近发现 Invent With Python,它使用 3。

我可以下载 python 3,并在我阅读 Invent With Python 时使用它,然后在我想阅读 How To Learn Python The Hard Way 时切换回 python 2。如果是这样,我将如何选择我使用的版本?

4

12 回答 12

37

使用“virtualenv”,您可以在一台机器上拥有不同的隔离 Python 环境。您也可以随时在不同的 python 解释器版本之间切换。

什么是虚拟环境?

虚拟环境是 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

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

于 2016-04-12T12:40:13.010 回答
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 之间存在一些语法差异,您需要注意(打印是一个函数等)。

于 2010-12-02T23:21:38.443 回答
6

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

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

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

如何在 python 2 和 3 之间切换

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

每当我想运行 2.7 时,我都会将其路径移至 anaconda 版本之上,如您在上面的屏幕截图中所见,并在我想运行 anaconda 版本时将其移至下方。

于 2017-07-04T08:48:22.847 回答
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 版本和用户配置文件。

于 2016-08-16T01:23:16.973 回答
1

*nix 系统上的几种方法:

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

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

于 2010-12-02T23:02:18.107 回答
1

如果您使用的是 Windows 10 并拥有 python 2.x 和 3.x。

  1. 打开控制面板>系统和安全>系统
  2. 单击高级系统设置。
  3. 单击环境变量。
  4. 单击路径并编辑,然后将要使用的python版本的路径设置在不想使用的上方[通过单击向上移动按钮]
  5. 重启powershell。
  6. 蟒蛇--版本
于 2017-04-15T07:15:05.803 回答
1

如果您使用的是蟒蛇:

创建一个名为 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

等等..

于 2018-10-22T03:07:47.940 回答
1

这是我的 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 环境。

于 2016-08-03T06:20:29.587 回答
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 添加到环境变量 PATH 中。

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

python3 -m virtualenv venv3

(2) 转到 venv 文件夹,使用以下命令激活它:

脚本\activate.bat

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

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

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

蟒蛇--版本

Python 3.6.0

对于python2:

python2 -m virtualenv venv2

结果:

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

我希望它会有所帮助。

于 2017-07-28T17:24:38.847 回答
0

在 Windows 上,Python 启动器可以为您执行此操作。

PEP 文章说:

社帮线解析

如果第一个命令行参数不以破折号 ('-') 字符开头,则将尝试将该参数作为文件打开并根据 [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
于 2016-08-22T03:13:05.797 回答
0

我只是觉得没有必要设置环境从python2切换到python3。相反,在命令行中编译 python 脚本文件时,将使用 python3而不是键入python您的类型。python3

# python3 myscript.py
于 2020-12-24T04:43:19.280 回答