我正在阅读 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。如果是这样,我将如何选择我使用的版本?
我正在阅读 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。如果是这样,我将如何选择我使用的版本?
使用“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
还有一种方法可以使用现有的站点包创建虚拟环境。
取决于您的系统/平台...
我目前使用的是 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 之间存在一些语法差异,您需要注意(打印是一个函数等)。
在 Windows 10 中,它比上面用户给出的要容易得多。
将两个版本安装在单独的文件夹中,然后转到环境变量并添加两个版本的路径。
现在任何时候你想运行特定版本,只需更改它的顺序(路径)并将其移动到其他版本的顶部,然后重新启动 cmd 并这次键入 python,你会看到只有特定版本的 python 会运行。
例如,在我的情况下,我有两个版本的 python 一个在 anaconda(v3.0.6) 中,另一个是 python 2.7
每当我想运行 2.7 时,我都会将其路径移至 anaconda 版本之上,如您在上面的屏幕截图中所见,并在我想运行 anaconda 版本时将其移至下方。
我在使用 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 版本和用户配置文件。
*nix 系统上的几种方法:
是的你可以。至少在我的机器上(Vista),v2 和 v3 有完全独立的空闲,让我可以在我喜欢的时候运行任何我喜欢的版本。所以继续下载v3。
如果您使用的是 Windows 10 并拥有 python 2.x 和 3.x。
如果您使用的是蟒蛇:
创建一个名为 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
等等..
这是我的 2 美分。
如果您使用的是基于 unix 的系统(Ubuntu 等),并且您当前拥有 python 2.x。继续从Python.org下载 python 3.x
安装后会创建一个单独的目录 python3
你完成了。
运行你的程序python2.x
使用python filename.py
要使用 运行您的程序,请python3.x
使用python3 filename.py
同样,要启动python2.x
和python 3.x
解释器分别使用python
和python3
。
我看到一些将您指向 virtualenv 的答案,我认为这不是您所要求的,virtualenv 用于隔离 Python 环境。
到目前为止,我已经尝试了 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
我希望它会有所帮助。
在 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
我只是觉得没有必要设置环境从python2切换到python3。相反,在命令行中编译 python 脚本文件时,将使用 python3而不是键入python
您的类型。python3
# python3 myscript.py