在nodejs中,我可以执行npm install package——save-dev将已安装的包保存到包中。
如何在Python包管理器pip中实现同样的事情?我希望将包名称及其版本保存到(比如说)需求中。在安装包后使用类似PIP install package——save-dev requirements.pip的东西。
在nodejs中,我可以执行npm install package——save-dev将已安装的包保存到包中。
如何在Python包管理器pip中实现同样的事情?我希望将包名称及其版本保存到(比如说)需求中。在安装包后使用类似PIP install package——save-dev requirements.pip的东西。
当前回答
这条简单的线是一个起点。您可以很容易地构建一个bash命令来重用该行中的PACKAGE。
pip install PACKAGE && pip freeze | grep PACKAGE >> requirements.txt
感谢@devsnd提供的简单bash函数示例:
function pip-install-save {
pip install $1 && pip freeze | grep $1 >> requirements.txt
}
要使用它,只需运行:
pip-install-save some-package
其他回答
更新:显然,pipenv没有得到Python维护者的正式认可,之前链接的页面属于另一个组织。该工具有其优点和缺点,但下面的解决方案仍然实现了OP正在寻求的结果。
Pipenv是一个依赖管理工具,它包装了PIP,并提供了你想要的东西:
https://pipenv.kennethreitz.org/en/latest/#example-pipenv-workflow
$ pipenv install <包> 如果Pipfile不存在,这将创建一个Pipfile。如果存在,它将自动使用您提供的新包进行编辑。
Pipfile直接相当于package。而Pipfile. json。Lock对应于package-lock.json。
我已经创建了一个python包,它包装了实际的pip,称为pipm。所有pip命令都将按原样工作,而且它们将反映在需求文件中。与pip-save(一段时间不活跃)不同,它可以处理许多文件和环境(测试、开发、生产等),这是我发现的一个类似的工具,但无法使用。它还有一个命令来升级所有/任何依赖项。
安装
Pipm安装pkg-name
安装作为开发依赖项
Pipm安装pkg-name——dev
安装作为测试依赖项
Pipm安装pkg-name——test
删除
Pipm卸载pkg-name
更新所有依赖项
pipm更新
从需求文件中安装所有依赖项
pipm安装
包括开发依赖项
Pipm安装——dev
用一个壳函数来做这个怎么样? 将以下代码添加到~/。配置文件或~/.bashrc
pips() {
local pkg=$1
if [ -z "$1" ]; then
echo "usage: pips <pkg name>"
return 1
fi
local _ins="pip install $pkg"
eval $_ins
pip freeze | grep $pkg -i >> requirements.txt
}
然后执行source ~/。配置文件或源~/。Bashrc将其导入到当前终端
当你想安装并保存一个包时,只需要运行,例如pips请求。 安装包后,其版本将保存到当前目录的requirements.txt中。
这条简单的线是一个起点。您可以很容易地构建一个bash命令来重用该行中的PACKAGE。
pip install PACKAGE && pip freeze | grep PACKAGE >> requirements.txt
感谢@devsnd提供的简单bash函数示例:
function pip-install-save {
pip install $1 && pip freeze | grep $1 >> requirements.txt
}
要使用它,只需运行:
pip-install-save some-package
您可以手动将其保存在Makefile(或一个文本文件,然后导入到您的Makefile):
PYTHON=.venv/bin/python # path to pyphon
PIP=.venv/bin/pip # path to pip
SOURCE_VENV=. .venv/bin/activate
install:
virtualenv .venv
$(SOURCE_VENV) && $(PIP) install -e PACKAGE
$(SOURCE_VENV) && $(PIP) install -r requirements.txt # other required packages
然后运行make install