pipenv 管理你的Python开发环境

Python
sudo -H pip install -U <span class="wp_keywordlink_affiliate"><a href="https://www.168seo.cn/tag/pipenv" title="View all posts in pipenv" target="_blank">pipenv</a></span>
1
sudo - H pip install - U pipenv

 

pipenv 常用命令:

 

示例:

 

 

创建一个环境:

 

 

安装第三方模块

pipenv可以自动安装你项目的第三方模块 :

pipenv install

安装列表是通过读取pipfilepipfile.lock文件实现的, 如果没有这两个文件就根据requirements.txt生成pipfilepipfile.lock并读取.

如果想单独安装某个模块还可以指定模块名安装:

pipenv install six

单独安装模块后会自动将新模块信息添加到pipfile中, 要同时更新pipfile.lock需要运行:

pipenv lock进入虚拟环境

pipenv shell

更多高级用法可以参考官方文档.细节问题

  • 虚拟环境里也可以通过pip安装第三方模块, 但这样不会自动更新pipfile文件.
  • virtualenv相同, 无法用pip安装的第三方模块要在虚拟环境里使用比较麻烦.
  • pipenv新建的虚拟环境放在统一的目录下, 在某个目录下运行pipenv shellpipenv会自动在虚拟环境目录下搜索以当前目录名称开头的虚拟环境目录, 如果没找到则判断为无虚拟环境.

 

 

移除环境:

 

Pipfile 与 Pipfile.lock

Pipfile 与 Pipfile.lock 是社区拟定的依赖管理文件,用于替代过于简陋的 requirements.txt 文件。

基本理念

  • Pipfile 文件是 TOML 格式而不是 requirements.txt 这样的纯文本。
  • 一个项目对应一个 Pipfile,支持开发环境与正式环境区分。默认提供 default 和 development 区分。
  • 提供版本锁支持,存为 Pipfile.lock

示例:

Shell
[[source]] url = 'https://pypi.<span class="wp_keywordlink"><a href="http://www.168seo.cn/python" title="python">python</a></span>.org/simple' verify_ssl = true [requires] python_version = '2.7' [packages] requests = { extras = ['socks'] } Django = '>1.10' pinax = { git = 'git://github.com/pinax/pinax.git', ref = '1.4', editable = true } [dev-packages] nose = '*'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[ [ source ] ]
url = 'https://pypi.python.org/simple'
verify_ssl = true
 
[ requires ]
python_version = '2.7'
 
[ packages ]
requests = { extras = [ 'socks' ] }
Django = '>1.10'
pinax = { git = 'git://github.com/pinax/pinax.git' , ref = '1.4' , editable = true }
 
[ dev - packages ]
nose = '*'

 


PEP 508 支持

可以设置支持的运行环境:

Shell
[requires] python_full_version = '3.6.0b1' platform = 'windows'
1
2
3
4
[ requires ]
python_full_version = '3.6.0b1'
 
platform = 'windows'

pip 支持

pip 提供了 -p/--pipfile 参数用于安装 Pipfile,类似 -r/--requirement 会默认寻找 requirements.txt 文件,如果没有指定 -p 的参数将会自动寻找 Pipfile 文件。

例如:

Python
pip install -p # 没有参数会自动寻找 Pipfile 文件 pip install -p Pipfile.lock # 根据 Pipfile.lock 安装指定依赖
1
2
pip install - p      # 没有参数会自动寻找 Pipfile 文件
pip install - p Pipfile . lock    # 根据 Pipfile.lock 安装指定依赖

 

需要注意的是,pip install -p 安装时会自动生成或更新 Pipfile.lock 文件。

Pipfile.lock

Pipfile.lock 是根据 Pipfile 和当前环境自动生成的 JSON 格式的依赖文件,任何情况下都不要手动修改该文件!

生成命令:pip freeze -p Pipfile

或者:pip freeze -p different_pipfile,将会生成 different_pipfile.lock

pipenv

pipenv 是 Pipfile 主要倡导者、requests 作者 Kenneth Reitz 的一个库,有机的结合了 Pipfile 、pip 和 virtualenv。

主要特性

  • 根据 Pipfile 自动寻找项目根目录。
  • 如果不存在,可以自动生成 Pipfile 和 Pipfile.lock
  • 自动在项目目录的 .venv 目录创建虚拟环境。(暂时需要设置 export PIPENV_VENV_IN_PROJECT=1
  • 自动管理 Pipfile 新安装和删除的包。
  • 自动更新 pip。

基本命令

  • pipenv --where:寻找项目根目录。
  • pipenv install:安装 Pipfile 中所列的所有包。
  • pipenv install --dev:安装 Pipfile 中 dev 环境所列的所有包。
  • pipenv uninstall:卸载所有包。
  • pipenv install pytest --dev:在 dev 环境中安装 pytest 包。
  • pipenv lock:确认 Pipfile 中所有包已安装,并根据安装版本生成 Pipfile.lock
  • pipenv shell:应用虚拟环境。

自动补全

由于 pipenv 的命令行程序是基于 Click 库,因此自带了 Bash 补全功能,只需要运行或者将这行代码加入 Bash 启动脚本:eval "$(_FOO_BAR_COMPLETE=source foo-bar)"

对于 Zsh,需要将这行代码改为 eval "$(_PIPENV_COMPLETE=source-zsh pipenv)"

最后,Pipfile 和 pipenv 仍然是实验性特性,可能存在不稳定性和较大变动,注意关注最新变化!。




  • zeropython 微信公众号 5868037 QQ号 5868037@qq.com QQ邮箱
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值