删除虚拟环境_虚拟环境

为了给不同工程创建互相独立的运行环境。不同虚拟环境中同一个包可以有不同的版本。虚拟环境数量没有限制,可以创建多个。

一、windows安装virtualenv

1、pip安装vitualenv

92332f3e6a96dbbfb9354a771c2f72f7.png

2、pip安装虚拟环境管理包virtualenvwrapper-win

dfc4b657870e9c562f7f075be7a43293.png

3、创建一个存放虚拟环境的目录(如.env)

删除虚拟环境_虚拟环境_第1张图片

4、配置环境变量(WORKON_HOME:上面目录的路径)

删除虚拟环境_虚拟环境_第2张图片

5、创建虚拟环境  mkvirtualenv [-p python2.7] ,创建完成后自动进入虚拟环境,-P是指定python版本

删除虚拟环境_虚拟环境_第3张图片

删除虚拟环境_虚拟环境_第4张图片

6、虚拟环境一些命令:

workon:列出所有的虚拟环境

workon [name]:进入指定的虚拟环境

deactivate:退出当前的虚拟环境

mkvirtualenv [name]:创建虚拟环境

rmvirtualenv [name]:删除虚拟环境,不需要限定当前路径

删除虚拟环境_虚拟环境_第5张图片

7、虚拟环境里包的管理

直接使用pip install进行安装,缺点是:卸载uninstall后,原来安装的依赖包没有卸载。

如:原先我的envpy3里的安装包有

删除虚拟环境_虚拟环境_第6张图片

pip install Flask之后可以看到包列表多了这些

删除虚拟环境_虚拟环境_第7张图片

卸载uninstall Flask之后,可以看到依赖包还在

删除虚拟环境_虚拟环境_第8张图片

8、requirements.txt文件恢复环境,这里记录了当前程序的所有依赖包及版本号

pip freeze>requirements.txt导出当前环境到requirements.tx

pip install -r requirements.txt 恢复环境

如下,我们恢复envpy3的环境,生成requirements文件,再创建一个虚拟环境,从这个文件里恢复环境。

删除虚拟环境_虚拟环境_第9张图片

最终我们看到,新环境里成功恢复了envpy3的环境,还包括了卸载掉了flask的依赖包,这个缺陷在接下来的pipenv得以解决。

删除虚拟环境_虚拟环境_第10张图片

二、安装pipenv

pipenv集成了pip、virtualenv两者的功能,pipenv使用Pipfile和Pipfile.lock,前者记录项目依赖包列表,后者记录了固定版本的详细依赖包列表,通过hash算法将包的名称和版本及依赖关系生成哈希值,保证包的完整性。win、linux各平台命令一致。

1、pip intall pipenv,安装完成后可以直接在pycharm里创建

删除虚拟环境_虚拟环境_第11张图片

2、修改镜像源,创建完成后我们可以看到项目里多了两个文件,存放依赖包的,lock文件放的信息更详细,我们把url换成国内镜像源快一些(具体百度),如清华:https://pypi.tuna.tsinghua.edu.cn/simple

删除虚拟环境_虚拟环境_第12张图片

3、安装包直接使用pipenv install xx,如果想只在开发环境安装后面加--dev

例,我们pipenv install requests和pipenv install flask --dev后,文件里分别显示这样

删除虚拟环境_虚拟环境_第13张图片

4、lock文件记录的依赖包的信息非常详细,方便直接部署在服务器恢复环境

删除虚拟环境_虚拟环境_第14张图片

比如我们新建一个目录,把刚才的两个文件copy进来,再恢复环境,最开始我们可以看到这个目录下没有虚拟环境,pipenv graph查看当前包,然后我们直接pipenv install

删除虚拟环境_虚拟环境_第15张图片

恢复完后再查看一下当前包,可以看到只有requests,因为flask是刚才我们安装的开发环境的包,不会恢复进来的。

删除虚拟环境_虚拟环境_第16张图片

如果想恢复dev的环境的包,pipenv install --dev,这时flask也恢复进来了

删除虚拟环境_虚拟环境_第17张图片

5、卸载包pipenv uninstall xx,会把lock文件的数据都删除,当你再恢复到其他环境,删除包的相关依赖都不会存在。

0548277a21070aa286604d11b21e6f2e.png

这时我们再新建一个目录,把testenv的两个pipfile拷贝过来,再pipenv install 和--dev一下,看看这时恢复过来的环境里只有requests,卸载掉的flask和依赖包都不会恢复,这是跟virtualenv区别的地方。

删除虚拟环境_虚拟环境_第18张图片

6、跟virtualenv一样,也可以通过requirements.txt文件恢复

pipenv lock -r --dev > requirements.txt 生成requirements文件

pipenv install -r requirements.txt  通过此文件安装环境

我们还是操作刚才的testenv环境,先生成requirements

8c76ed77948e5cf9ae60350fcb757a5c.png

再创建一个新目录testnewnew用来安装此文件的环境,最终我们看到requests成功恢复,且删掉的flask及依赖包不恢复。

3f2d7abf5c12a51877be61d37b59343c.png

删除虚拟环境_虚拟环境_第19张图片

7、pipenv相关命令

pipenv --where  列出本地工程路径

pipenv --venv  列出虚拟环境路径

pipenv --py  列出虚拟环境的python可执行文件

pipenv graph  查看包依赖

pipenv lock  生成lock文件,比如lock文件被删除了,可以重新生成

pipenv --rm  删除虚拟环境,只能针对当前目录下的虚拟环境,pipfile文件需要手动删

pipenv shell  激活虚拟环境,在当前目录下执行该命令

exit  退出虚拟环境

删除虚拟环境_虚拟环境_第20张图片

你可能感兴趣的:(删除虚拟环境)