所谓的python虚拟环境,我们可以类比虚拟机的概念,每一个python虚拟环境都包含基本的python库,是能够独立运行的执行空间。在虚拟环境里可以下载第三方包、创建项目、写代码等等。因为虚拟环境之间互不干扰,一旦进入某个虚拟环境后,下载、安装的包,仅仅只会安装到该虚拟环境里。
在使用Python语言的时候我们使用pip来安装第三方包,但是由于pip的特性,系统中只能安装每个包的一个版本。但是在实际项目开发中,不同项目可能需要第三方包的不同版本,Python的解决方案就是虚拟环境。顾名思义,虚拟环境就是虚拟出来的一个隔离的Python环境,每个项目都可以有自己的虚拟环境,用pip安装各自的第三方包,不同项目之间也不会存在冲突。
虚拟环境相当于一个抽屉,在这个抽屉中安装的任何包都不会影响其他抽屉,我们可以指定项目的虚拟环境来配合我们的项目。比如我们现在有两个项目,一个是基于Django1.1.0版本,另一个是基于Django 0.9版本,那么就可以创建两个虚拟环境,分别安装Django1.1.0和Django0.9来适应两个项目。
网上搜到的pip国内镜像大部分是豆瓣的,但是根本不全,很多包没有,所以推荐清华大学的。
清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 华中理工大学:http://pypi.hustunique.com/ 山东理工大学:http://pypi.sdutlinux.org/ 豆瓣:http://pypi.douban.com/simple/ note:新版ubuntu要求使用https源,要注意。
pip安装virtualenv
pip安装虚拟环境管理包 virtualenvwrapper-win
创建一个存放虚拟环境的家目录(建议命名.env或.virtualenv)
配置环境变量(变量名:WORK_HOME,路径是创建的虚拟环境家目录)
pip install virtualenv # 安装 virtualenv env # 创建环境 | 在当前目录下面 source env/bin/activate # 激活环境
workon # 列出所有的虚拟环境 workon [name] # 进入指定的虚拟环境 deactivate # 退出当前的虚拟环境 mkvirtualenv [name] # 创建虚拟环境 rmvirtualenv [name] # 传出虚拟环境 进入虚拟环境 pip install # 安装第三方库
requirements.txt 文件:
(一) requirements.txt文件,里面会记录当前项目的所有依赖包及版本号,其作用是用来在另一个环境上重新构建项目所需要的运行环境依赖。
(二) 导出当前环境的requirements.txt
1.项目在虚拟环境中就导出虚拟环境的配置
2.项目在本地环境也可以导出本地环境的配置
3.pip freeze > requirements.txt # 导出环境
(三) 使用requirements.txt恢复环境
1.项目在虚拟环境中就安装到虚拟环境里
2.项目在本地环境中就安装到本地环境里
3.将文件导入到新项中执行命令
4.pip install -r requirements.txt # 恢复环境
创建文件夹 mkdir [name]
进入文件夹 cd [name]
初始化虚拟环境 pipenv install
初始化后会生成pipfile和pipfile.locke文件
pipenv install #创建虚拟环境 pipenv install django #安装到默认 pipenv install django --dev #安装到开发环境
pipenv --rm # 删除虚拟环境 pipenv --where # 列出当前工程路径 pipenv --venv # 列出虚拟环境路径 pipenv --py # 列出python解释器路径 pipenv graph # 查看依赖包 pipenv lock # 生存lock文件 pipenv shell # 进入虚拟环境 exit # 退出虚拟环境
pipenv管理模块和包 :
(一) 在虚拟环境中安装包:pipenv install 包名 将包安装在[packages]下(注意:当前项目路径下执行命令)
(二) pipenv install --dev 包名 将包安装在开发环境中[dev-packages]
(三) 卸载虚拟环境安装包 pipenv uninstall 包名
(四) 查看安装包及依赖关系 pipenv graph
(五) 生成requirements.txt文件
1.pipenv lock -r >requirements.txt 来源[packages]
2.pipenv lock-r--dev >requirements.txt 来源[dev-packages]
(六) 使用requirements.txt恢复环境
1.pipenv install -r requirements.txt
(七) 使用pipfile和pipfile.lock恢复环境
1.将两个文件导入到新的项目中,在项目路径下执行
2.pipenv install 项目环境恢复
3.pipenv install --dev 开发环境恢复