1.2 虚拟环境
创建好应用目录之后,接下来该安装Flask了。安装Flask最便捷的方法是使用虚拟环境。
虚拟环境是Python解释器的一个私有副本,在这个环境中你可以安装私有包,而且不会影响系统中安装的全局Python解释器。
虚拟环境非常有用,可以避免你安装的Python版本和包与系统预装的发生冲突。为每个项目单独创建虚拟环境,可以保证应用只能访问所在虚拟环境中的包,从而保持全局解释器的干净整洁,使其只作为创建更多虚拟环境的源。与直接使用系统全局的Python解释器相比,使用虚拟环境还有个好处,那就是不需要管理员权限。
1.2.1 创建虚拟环境
Python 3和Python 2解释器创建虚拟环境的方法有所不同。在Python 3中,虚拟环境由Python标准库中的venv包原生支持。
下面我们在flasky目录中创建一个虚拟环境。通常,虚拟环境的名称为venv,不过你也可以使用其他名称。确保当前目录是flasky,然后执行这个命令:
$ python -m venv venv
这个命令执行完毕后,flasky目录中会出现一个名为venv的子目录,这里就是一个全新的虚拟环境,包含这个项目专用的Python解释器。
在创建python虚拟环境的时候,如果使用的是Anaconda中集成的python -m venv venvdir就会出现不能安装pip的错误,原因是Anaconda没有ensurepip,解决办法是使用python -m venv --without-pip venv创建没有pip的虚拟环境,然后启动虚拟环境安装pip即可。
或在https://www.aliyundrive.com/s/SLXKZzbxFac下载get-pip.py,保存到虚拟环境目录中,然后运行:
(venv)$ python get-pip.py # 运行安装脚本
1.2.2 使用虚拟环境
若想使用虚拟环境,要先将其“激活”。如果使用微软Windows系统,激活命令是:
$ venv\Scripts\activate
虚拟环境被激活后,里面的Python解释器的路径会添加到当前命令会话的PATH环境变量中,指明在什么位置寻找一众可执行文件。为了提醒你已经激活了虚拟环境,激活虚拟环境的命令会修改命令提示符,加入环境名:
(venv) $
激活虚拟环境后,在命令提示符中输入python,将调用虚拟环境中的解释器,而不是系统全局解释器。如果你打开了多个命令提示符窗口,在每个窗口中都要激活虚拟环境。
虽然多数情况下,为了方便,应该激活虚拟环境,但是不激活也能使用虚拟环境。例如,为了启动venv虚拟环境中的Python控制台,在微软Windows中可以执行venv\Scripts\python命令。
图1-1 激活虚拟环境
虚拟环境中的工作结束后,在命令提示符中输入deactivate,还原当前终端会话的PATH环境变量,把命令提示符重置为最初的状态。