我正在阅读如何学习Python的艰难之路,它使用2.最近发现的使用Python的Invent,它使用3。
我可以下载python 3,并在阅读Invent With Python时使用它,然后当我想阅读如何学习Python的艰难之路时切换回python 2。如果是这样,我如何选择使用哪个版本?
使用'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
还有一种方法可以使用已有的站点包创建虚拟环境。
到目前为止我已尝试过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
我希望它会有所帮助。
这是我的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环境。
取决于您的系统/平台......
我目前正在使用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是一个函数等)。
我在使用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。
如果您使用的是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
等等..
在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
如果你使用的是Windows 10并且有python 2.x和3.x.