像 npm 那样使用 pip 自动生成 requirements.txt 文件

前言

希望能像npm install那样自动的将安装的包加入到requirements.txt文件中,但是同时又不希望把子依赖加入其中

虽然我们能通过pip freeze > requirements.txt将依赖导出,但是这样导出的依赖,会把包的其他子依赖也导出,导致重新安装的时候总是提示包的版本不对

解决

通过bashalias或者函数来解决,在.zshrc中添加以下函数

1
2
3
function pip-install {
pip install $1 && pip freeze | grep -w "${1}=" >> requirements.txt
}

使用

1
pip-install sanic

效果

1
2
cat requirements.txt
sanic==21.6.2

从上面文件可以看出requirements.txt中并没有sanic的其他子依赖,至于sanic的其他子依赖会在安装sanic时自动安装就不用管它了

最后

最后我们在其他地方使用项目的时候只需要安装requirements.txt中的包就行了

1
pip install -r requirements.txt