为什么我不是很推荐 pipenv

今天刚好在 FCC 群里讨论到这个问题,顺便转帖一下到这里。

pipenv 我之前的使用经验是由于网络问题还是什么,有时很慢,目前不建议国内使用

反正我当年看到网上有人反应这个慢的问题,个人猜测可能是 lock 时会查询各种包的状态,某个 PYCON 看到作者似乎也找不到好的解决办法,可能需要一些时间去解决。这样子之后每个项目都需要我去指定国内源,那我原来用 virtualenv 只要配置全局的 pip.conf 就可以解决的事,再配合 virtualenvwrapper 使用基本很愉快,完全没有动力换成 pipenv。所以也不建议给新手推荐这个,因为在一个 lock 时间要等几分钟的情况下,给新手增添了挫折感。

个人在一般项目中使用 virtualenv 的流程已经非常愉快,很少涉及到包关系 lock 的情况,可能大项目会考虑用用 pipenv 吧。当然,我已经很久没沉浸在开发里,没有关注 pipenv 等是否有增强和变化,如果有发现再来更新这个帖子。

因此我觉得给新手推荐 virtualenv 可能更合适

顺便补充一下,新手使用 anaconda 是推荐的,一站式解决,特别是想玩玩机器学习什么的。虽然这也是我综合一些开发的朋友和网上的一个观点,我自己使用anaconda 的机会不多,所以不是很有说服力。再虽然,我觉得新手不要学什么机器学习,个人觉得一下子难学到比较有意思的部分或者难作出什么能用的东西,还不如学点做 blog 这样的。

参考:
Pipenv:新一代Python项目环境与依赖管理工具 - 知乎
这里会介绍怎么在 pipenv 的时候使用国内源和 skip lock 加快一下速度