第一次接触到 pipenv 是因为看到 @董明伟大神的《使用 pipenv 管理你的项目》,之前可能和大家的选择类似使用 virtualenv 或者 pyenv 来管理 python 的包环境。virtualenv 是针对 python 的包的多版本管理,通过将 python 包安装到一个模块来作为 python 的包虚拟环境,通过切换目录来实现不同包环境间的切换。pyenv 是针对 python 版本的管理,通过修改环境变量的方式实现;虽然我自己对 pipenv 的掌握程度还不深,但是我自己能感受到更加简单而清晰的 python 包管理方式,并且 pipenv 还是 Python 官方正式推荐的 python 包管理工具。原文如下:
Pipenv — the officially recommended Python packaging tool from Python.org, free (as in freedom).
Pipenv 官方推荐的 Python 包管理工具
2017 年 04 月 25 日 - 初稿
阅读原文 - https://wsgzao.github.io/post/pipenv/
扩展阅读
Pipenv - https://docs.pipenv.org/ Pipenv & 虚拟环境 - http://pythonguidecn.readthedocs.io/zh/latest/dev/virtualenvs.html
使用 pipenv 管理你的项目 @董伟明 http://www.dongwm.com/archives/%E4%BD%BF%E7%94%A8pipenv%E7%AE%A1%E7%90%86%E4%BD%A0%E7%9A%84%E9%A1%B9%E7%9B%AE/
[ python 基础系列 ] - pipenv 试用过程分享 http://pylixm.cc/posts/2018-01-13-python-pipenv.html
Pipenv: Python Development Workflow for Humans
Pipenv — the officially recommended Python packaging tool from Python.org, free (as in freedom).
Pipenv is a tool that aims to bring the best of all packaging worlds (bundler, composer, npm, cargo, yarn, etc.) to the Python world. Windows is a first – class citizen, in our world.
It automatically creates and manages a virtualenv for your projects, as well as adds/removes packages from your Pipfile as you install/uninstall packages. It also generates the ever – important Pipfile.lock, which is used to produce deterministic builds.
The problems that Pipenv seeks to solve are multi-faceted:
You no longer need to use pip
and virtualenv
separately. They work together.
Managing a requirements.txt
file can be problematic, so Pipenv uses the upcoming Pipfile
and Pipfile.lock
instead, which is superior for basic use cases.
Hashes are used everywhere, always. Security. Automatically expose security vulnerabilities.
Give you insight into your dependency graph (e.g. $ pipenv graph
).
Streamline development workflow by loading .env
files.
我的使用深度不高,就以目前我实际使用 pipenv 的方式为例
# pip 离线下载
# pip install --download DIR -r requirements.txt
mkdir pipenv
pip install -d ~/pipenv/ pipenv
# pip 离线安装 pipenv
pip install --no-index --find-links=pipenv/ pipenv
# 使用 pipenv 创建虚拟环境
mkdir win_ansible
cd win_ansible
pipenv shell
pip install --no-index --find-links=pip-ansible-2.4.3.0/ -r requirements.txt
# 升级 ansible 版本
pip install --no-index --find-links=pip-ansible-2.5.0/ -r requirements.txt -U
# 退出虚拟环境
exit
# 对不同开发用户自动创建 python 虚拟环境
vim ~/.bash_profile
pipenv shell
# 虚拟环境会在当前用户家目录自动创建
test101@JQ/root#su - wangao
Spawning environment shell (/bin/bash). Use 'exit' to leave.
test101@JQ/home/wangao$. /home/wangao/.local/share/virtualenvs/wangao-iOSX51hl/bin/activate
# 沿用 pip 创建 requirements.txt ,该方法相对 Pipfile 来说不是最佳
(wangao-iOSX51hl) test101@JQ/home/wangao/git/ansible$cat requirements.txt
--index-url=http://172.31.96.201:8081/simple/
--trusted-host=172.31.96.201
ansible
ansible-cmdb
pywinrm
# 通过 gitlab 同步控制 python 包环境
git checkout develop
git pull origin develop
pip install -r requirements.txt -U
Python 2.6 升级至 Python 2.7 的实践心得 - https://wsgzao.github.io/post/python-2-6-update-to-2-7/ 使用 pypiserver 快速搭建内网离线 pypi 仓库实践 - https://wsgzao.github.io/post/pypiserver/ RHEL7/CentOS7 在线和离线安装 GitLab 配置使用实践 - https://wsgzao.github.io/post/gitlab/
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.