Python集中式虚拟环境管理

Python集中式虚拟环境管理

virtualenvwrapper
使用文档

  • 通过virtualenvwrapper创建的虚拟环境都会统一存放到指定位置统一管理
  • 方便在多个虚拟环境间切换
  • 更加方便的去使用 virtualenv

安装

pip install virtualenvwrapper-win -i https://pypi.tuna.tsinghua.edu.cn/simple/

使用

快速创建虚拟环境并激活

mkvirtualenv venv1

快速在多个虚拟环境中切换

workon venv2

快速关闭虚拟环境

deactivate

快速删除虚拟环境

rmvirtualenv env1

查看所有创建的虚拟环境

lsvirtualenv

修改默认虚拟环境存储路径

非常非常讨厌把所有非必要的文件都默认存放到c盘的傻逼设计,
任何这样设计的开发者都是傻逼,
不接受任何反驳,
什么存c盘固态快,避免异常...
都是的狗屁,
c盘都爆了!!!
存之前判断下有没有D盘,或者让用户选择位置有这么难吗,
不说了,进入正题

如何修改默认虚拟环境存储路径
很简单,
进入环境变量=》添加环境变量

# 变量值就是自定义的存储路径
变量名:WORKON_HOME
变量值:D:\venvs

requirements.txt使用

虚拟环境下生成

pip freeze > requirements.txt

生成后文件requirements.txt是这个样子,可以理解成npm的package.json

attrs==19.3.0
Automat==20.2.0
cffi==1.14.0
constantly==15.1.0
cryptography==2.9.2

虚拟环境下安装

pip install -r requirements.txt

永久修改pip的默认源

Linux环境:

1、首先找到默认pip的目录

查看此文件夹下是否有.pip文件夹和.pip文件夹下是否有pip.conf文件,

如果都有的情况下:

修改 xx/.pip/pip.conf

如果没有的情况下:

分别新建文件夹和pip.conf文件,其中.pip文件夹之所以这么明明是因为文件夹前面加.表示的是隐藏文件夹

2、在pip.conf文件中,输入以下内容

[global]
timeout = 300
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = tsinghua.edu.cn

windows环境下

1、首先找到USERPROFILE这个环境变量的地址:

在cmd中输入set,找到USERPROFILE的地址(一般情况下是用户的目录)

2、进入到此地址下新建一个pip目录和pip.ini文件,pip.ini文件输入如下内容:

[global]
timeout = 300
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=tsinghua.edu.cn

其中,https://pypi.tuna.tsinghua.edu.cn/simple可以被以下的任何一个链接代替,然后trusted-host直接设置为一级域名即可,即最长的那个带着.com或者.cn或者.org的那个。

国内的镜像源分别如下:
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
阿里:https://mirrors.aliyun.com/pypi/simple
豆瓣:http://pypi.douban.com/simple/
中国科学技术大学: https://pypi.mirrors.ustc.edu.cn/simple
华中理工大学: http://pypi.hustunique.com/simple
山东理工大学: http://pypi.sdutlinux.org/simple

弊端

  • 只是对 virtualenv 的使用封装,包的安装及虚拟环境的操作依然是分离的。
  • 并未具备对项目包的依赖管理及需求文本的生成操作封装

虽然有设计理念更好的pipenv,但是各路知乎大V或者掘金大神都不推荐使用,因为pipenv吹的很牛逼,但很多功能压根没有实现并且有很多BUG,至于什么时候能放心使用,还得等其他大神踩完坑。
附:
小马哥的pipenv使用教程
李辉大佬的pipenv使用教程
为什么不要使用pipenv

Last modification:July 17th, 2020 at 06:07 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment