底层虚拟环境 virtualenv
virtualenv 说明
virtualenv是一个创建独立的 Python 环境。 virtualenv 会创建一个文件夹,其中包含使用 Python 项目所有所需的可执行文件。
它可以单独使用,用于代替 Pipenv 。
virtualenv 安装
通过 pip 安装:
# pip install virtualenv
测试下是否安装完成:
# virtualenv --version
15.1.0
实战--为项目创建一个虚拟环境
创建一个项目虚拟环境
# mkdir virtual_project
# cd virtual_project/
# virtualenv my_project
说明⚠️:
- virtualenv my_project 将会在当前目录创建一个文件夹来存放 Python 的可执行文件以及拷贝一份 pip 库,这样就能安装其他包了。虚拟环境名字( 这里是 my_project )可以随意,若省略名字将会把文件均放在当前目录。
- 这将在你运行此命令的文件目录下创建一个 Python 的副本,并将其放入名为 my_project 的文件夹中
- 你也可以选择 Python 解释器(如 python2.7 ) 。
# virtualenv -p /usr/bin/python2.7 my_project
使用虚拟环境前,需要先激活
激活虚拟环境,命令如下:
# source my_project/bin/activate
(my_project) [root@wtf virtual_project]#
(my_project) [root@wtf virtual_project]#
说明⚠️:
- 当前虚拟环境的名称将出现在提示符的左侧 (e.g. (my_project) [root@wtf virtual_project]# ) ,这样你就能了解当前激活的虚拟环境是什么。
- 自此,你使用 pip 安装的任何包都会放在 my_project 文件夹,与全局 Python 安装的包相互独立。
- 安装包的话就与往常一样,如:
pip install requests
如果你在虚拟环境中暂时完成了工作,可以这样停用它:
deactivate
这样你就回到了系统默认的 Python 解释器,包括安装的库页会回到默认的。
删除虚拟环境
要删除一个虚拟环境,只需要删除对应文件夹。( 以当前示例来说,执行 rm -rf my_project) 。
虚拟环境回收工作
因为virtualenv 也有些不便之处,因为一段时间后你的系统中可能会有很多虚拟环境散落在各处,这样会让你忘记它们的名字或位置。
运行 virtualenv 带上选项 --no-site-packages 将不会包含已经全局安装的包。这样有助于保持包列表的整洁以防万一之后需要访问它。
# cd /root/virtual_project
virtualenv --no-site-packages my_project
New python executable in /root/virtual_project/bin/python
Installing setuptools, pip, wheel...done.
实战--“冻结”当前安装的环境包
为了保持环境的一致性,“冻结”当前环境包的状态是正确的选择。冻结环境可以运行下面的命令:
# “冻结” 当前系统中pip安装的环境包
# pip freeze > requirements.txt
# “冻结” my_project 项目虚拟环境中pip安装的环境包
(my_project) [root@wtf virtual_project]# pip freeze > requ.txt
部署与“冻结”环境一致的环境包
# pip install -r requirements.txt