看到不少大神推荐 pipenv 加之它的作者就是 requests 的作者 本身对 requests 很是佩服的, 做到了所求即所得 但是尝试 pipenv, 实在是, 找不到吸引的地方
本身开发环境是 pip+virtualenv+virtualenvwrapper pip 解决了 python 的包环境 想创建 python3 环境, mkvirtualenv new_venv -p python3 即可 切换环境是 virtualenvwrapper 的 workon 命令 每一步都非常之方便
pipenv 目前, 我能发现的唯一的优势, 就是能自动更新 requirements 貌似有个小缺点, 就是创建的环境会增加一些字符串, 在有些情况下, 指明解释器麻烦了一点(个人习惯吧) 求教, pipenv 还有什么爽点?
PS: 在写的时候, 想到了为什么要用 pyenv, 因为我电脑里面就没有 python3.5, 只有 3.6 那么 python3.5 环境的创建, 对于我来说确实麻烦了点
1
janxin 2018-02-26 22:26:08 +08:00 2
你说的这一些基本上确实和 virtualenvwrapper 差不多,通过 pipenv shell 可以达到和 workon 类似的效果。
不过 pipenv 在易用性上要简单很多,同时增加了 lock 文件,能更好的锁定版本。如果没有特殊要求可以 pipenv 直接使用 lock 的版本,开发又可以小步迭代,实现依赖的稳步升级。同时,还有一个是之前用 requirements.txt 的时候通常还需要一个额外的开发 requirements.txt ,这个在 pipenv 里也合并成了单个文件。 pipenv 还提供了安全检查功能,可以查看你使用的库有没有安全问题。 |
2
vimiix 2018-02-27 10:21:13 +08:00
pipenv 的优势不知道其他的,至少一个是它可很方便的管理包依赖关系。卸载的时候,可以自动检查依赖库是否被其他包依赖,来选择是否彻底删除。也可以通过 pipenv graph 来查看各个包的依赖关系图。
|
3
guyskk0x0 2018-02-28 01:57:32 +08:00
用过 pipenv,感觉很卡,又没有解决核心问题。
目前用 pyenv,可以装任意版本 Python,切换目录自动激活虚拟环境,用 pip freeze 生成 requirements.txt ,必要时手动修改,比 pipenv 省心。 |
4
rogwan 2018-02-28 08:30:13 +08:00 via Android
pipenv 有没有解决耦合依赖的问题?比如某个功能依赖 libA==1.0.1,另外一个功能却依赖 libA==2.0.1 (换成 libA==1.0.1 会不行)
|
5
cupen 2018-03-17 02:36:51 +08:00
pipenv 在功能上算是 pip、virtualenvwrapper、requirements 的集合 ,实现的很干净,易用性提升明显。并且不再依赖那种切环境变量的使用方式,改实现到 shell 命令里了。不是每个人都接受切换环境变量,多少有点上下文混乱,对自动化运维脚本也很不友好。
|