2019-03-31 pipenv 使用调研

2019-03-31 pipenv 使用调研

  • 1. 基础认知
  • 2. 研究和体验
  • 3. 思考

1. 基础认知

  • pipenv 命令 会根据当前项目下是否有Pipfile文件来判断是否在一个project中,这一点像git命令

2. 研究和体验

  • 项目初始化命令
    • 命令: pipenv 初始化项目命令 pipenv --python 3.6,
    • 虚拟环境: 该命令会在 /home/chester/.local/share/virtualenvs 中生成一个标准的虚拟环境(virtualenv)目录,目录名字规范为 “项目目录名字-8位随机字符串”,例如 bbb-mP3HwKHY
    • 关联项目: pipenv 会在该虚拟环境目录下额外添加一个.project文件,用来表明 与该虚拟环境相关联的项目地址
  • pipenv shell 会进入到与该项目关联的虚拟环境中
    • 标准的virtualenv: 进入环境之后,对应的一套 easy_install pip 都会有,并且 安装的模块包如果含有shell命令,也会包含在该环境中,均存在于 虚拟环境的bin目录下
    • 安装不统一:在进入环境之后,pip install 安装的东西并不会反映在 Pipfile中. (坑)
  • pipenv install module_name 安装模块包
    • 该命令会写入到Pipfile中
    • 缺点1,下载慢(还是需要通过~/.pip/pip.conf设置index_url来解决)
    • 缺点2,下载无进度条,(pip和buildout均有这种特性)
    • 缺点3,locking慢(完全无法忍受)
  • pipenv locate 相当于whoami
    • –py 输入当前的python命令真正地址
    • –venv 输入当前虚拟环境的地址
    • –where 输入当前虚拟环境相关联的project地址

3. 思考

  • bug多:install功能相当垃圾,使得我没有欲望 去继续深入了解pipenv。
  • 差于buildout: 和buildout相比,buildout毕竟已经推出好多年了,虽然也稍有学习成本,但是总体体验上还是非常不错的,而且有强大的扩展功能. 我也通过修改源码解决了buildout install不够快的体验,但是即使我不解决,buildout的install的体验也要比pipenv快很多。

你可能感兴趣的:(pipenv,依赖管理,python,buildout)