V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
746970179
V2EX  ›  Python

求教 pipenv 到底优势在哪里?

  •  
  •   746970179 · 2018-02-26 20:12:16 +08:00 · 4900 次点击
    这是一个创建于 2459 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看到不少大神推荐 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 环境的创建, 对于我来说确实麻烦了点

    5 条回复    2018-03-17 02:36:51 +08:00
    janxin
        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 还提供了安全检查功能,可以查看你使用的库有没有安全问题。
    vimiix
        2
    vimiix  
       2018-02-27 10:21:13 +08:00
    pipenv 的优势不知道其他的,至少一个是它可很方便的管理包依赖关系。卸载的时候,可以自动检查依赖库是否被其他包依赖,来选择是否彻底删除。也可以通过 pipenv graph 来查看各个包的依赖关系图。
    guyskk0x0
        3
    guyskk0x0  
       2018-02-28 01:57:32 +08:00
    用过 pipenv,感觉很卡,又没有解决核心问题。
    目前用 pyenv,可以装任意版本 Python,切换目录自动激活虚拟环境,用 pip freeze 生成 requirements.txt ,必要时手动修改,比 pipenv 省心。
    rogwan
        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 会不行)
    cupen
        5
    cupen  
       2018-03-17 02:36:51 +08:00
    pipenv 在功能上算是 pip、virtualenvwrapper、requirements 的集合 ,实现的很干净,易用性提升明显。并且不再依赖那种切环境变量的使用方式,改实现到 shell 命令里了。不是每个人都接受切换环境变量,多少有点上下文混乱,对自动化运维脚本也很不友好。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1917 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:19 · PVG 00:19 · LAX 08:19 · JFK 11:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.