pipenv换源、锁定依赖的一键脚本

pipenv现在已经是流行的python包管理器了,但是与npm不同的是他安装时不会锁定依赖,默认源也是pypi的(虽然好像可以通过配置换),而且pipenv创建完环境会以当前默认python解释器为指定的解释器,该做的不做不该做的倒是做了,很麻烦,所以特此写一个一键脚本。主要部分参考知乎一位大神的,帖子找不到了 。

这个脚本可以换清华源、锁定依赖版本、多python版本支持
最好在系统python解释器安装一下tomlkit,当然你也可以直接虚拟环境去装然后用

使用的话,在pipenv创建完环境之后,运行一下该脚本,便可换源、删除python版本锁定
在开发完之后,再运行一下脚本,便可锁定依赖版本

# -*- coding: utf-8 -*-
import json
from pathlib import Path
import tomlkit

d = json.load(open('Pipfile.lock'))

p = Path('Pipfile')
document = tomlkit.loads(p.read_text())

# 更换清华源
document['source'][0]['url'] = "https://pypi.tuna.tsinghua.edu.cn/simple"

# 多版本支持
if 'requires' in document:
    del document['requires']

# 锁定包版本
if Path('Pipfile.lock').exists():
    d = json.load(open('Pipfile.lock'))
    for k, v in d['default'].items():
        if k in document['packages']:
            document['packages'][k] = v['version']

# 开发依赖添加tomlkit
if 'dev-packages' not in document:
    document['dev-packages'] = {}
document['dev-packages']['tomlkit'] = '*'

p.write_text(tomlkit.dumps(document))

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容