Python虚拟环境大杂烩
2021年复盘,
Hatch
在写完这篇文章后就再也没有新的更新,看来还真不能乱立Flag,hhhh
写在前面
距离上篇博客差了半年,很惭愧,因为促使自己写博客的动力之一就是接触了新东西,想记录下来,这大半年实在不太在状态,写了几篇文章发布后又删除了,好在最近感觉好了不少。
这个学期开始明显感觉校内网限速严重了许多,时不时还断连需要重新认证一下,体验很不好,尤其是用Pipenv
安装一些包的时候,尽管知道安装慢很大一部分是网络的问题,但当我看到Pipenv
安装报错时,也渐渐对Pipenv
起了一些疑虑,有时当我创建一个新的虚拟环境需要很长时间,有时候又Locking很久……,那颗折腾的心又躁动了起来。
为什么需要虚拟环境
防止各种项目冲突顺便方便的导出所有依赖,简单的例子就是A项目中需要的是Django1.0
,而B项目中需要的是Django2.0
,为了防止来回卸载安装,所以我们使用虚拟环境分别配置单独的运行环境
虚拟环境大杂烩
光是Pycharm所支持的就有 virtualenv
Conda
Pipenv
等等 以及看大佬推荐的Poetry
Conda
最后还是选择了顺手的 Hatch
选择哪种虚拟环境工具好
先给出目前的个人结论:用回 virtualenv
/venv
和 pip
不一定是最方便的,但是至少更可靠 之前我一直都是用的Pipenv
,说实在的除了偶尔Creating
&Locking
慢了点,并没有遇到什么大问题,但当我看到 不要用 Pipenv 改变了 ‘我用着舒服你那问题我没遇见就接着用下去’ 的想法。
其中最让我不能接受的就是打着官方暧昧关系进行宣传以及快一年没有新的 releases
。
既然已经有了换的心思,满怀希望的去尝试大佬推荐的 Poetry
,嗯官网界面很对我口味,结果正当我安装好初始化时现实又给我来了一巴掌。
1 | → poetry init |
溜了溜了,连最基础的路径下创建文件都能整一个编码错误的项目我是更不敢用了,还是老办法吧。
重回 virtualenv 和 pip 时代
这里我还用到了virtualenvwrapper
这个工具来简化virtualenv
的操作
1 | pip install virtualenv virtualenvwrapper |
1 | # 环境配置 |
常用命令
1 | # workon 进入切换 环境 |
六、发展中的Hatch(不支持Python2)
就在我准备收尾时,突然发现了 Hatch 这个项目,基于virtualenv 简单安装使用下来发现意外的很舒服,具体安装步骤见项目主页,这里简单回顾提及下
1 | # 安装virtualenv和Hatch |
常用命令
1 | # 列出所有的虚拟环境(~/.virtualenvs) |
目前上面这些功能其实和virtualenv
差不多,但是项目主页上的TODO中有一行写到python
- installs the desired version of Python. will work on each platform,这代表以后版本更新后也可以自由的像Conda
那样创建虚拟环境的时候直接指定特定的Python
版本。
(值得一提的是:之前我也尝试去用了下Conda
来管理,但是他会和pip
有一定冲突,而且如果用Conda install
会有很多包找不到,在虚拟环境下安装pip
又会多出几个额外的依赖,所以放弃了)
期待Hatch
后续的更新,毕竟我切换Python
版本还是用的少的。
Python虚拟环境大杂烩