在nodejs中,我可以npm install package --save-dev
将已安装的软件包保存到软件包中。
如何在Python包管理器中实现同一目的pip
?我想将软件包名称及其版本保存到,例如,requirements.pip
使用来安装软件包之后pip install package --save-dev requirements.pip
。
在nodejs中,我可以npm install package --save-dev
将已安装的软件包保存到软件包中。
如何在Python包管理器中实现同一目的pip
?我想将软件包名称及其版本保存到,例如,requirements.pip
使用来安装软件包之后pip install package --save-dev requirements.pip
。
您可以将其手动保存在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
我正在使用此小命令行来安装软件包并将其版本保存在requirements.txt
:
pkg=package && pip install $pkg && echo $(pip freeze | grep -i $pkg) >> requirements.txt
更新:显然,pipenv没有得到Python维护者的正式认可,并且以前链接的页面是由另一个组织拥有的。该工具各有利弊,但以下解决方案仍然可以达到OP所寻求的结果。
pipenv是一个依赖项管理工具,它包装pip
并提供您所要求的内容:
https://pipenv.kennethreitz.org/en/latest/#example-pipenv-workflow
$ pipenv install <package>
如果不存在,这将创建一个Pipfile。如果确实存在,它将使用您提供的新软件包自动进行编辑。
A Pipfile
直接等于package.json
,而Pipfile.lock
对应于package-lock.json
。
这条简单的线是一个起点。您可以轻松构建一个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
我创建Python包,各地的实际包装pip
称为PIPM。所有pip
命令将按原样运行,并且它们将反映在需求文件中。与pip-save
(我发现但无法使用的类似工具)不同,它可以处理许多文件和环境(测试,开发,生产等)。它还具有用于升级所有/任何依赖项的命令。
pipm install pkg-name
pipm install pkg-name --dev
pipm install pkg-name --test
pipm uninstall pkg-name
pipm update
pipm install
pipm install --dev
我快速pip
添加了--save
用于安装/卸载命令的选项。
请查看我的博客以获取有关此黑客的更多信息:http : //blog.abhiomkar.in/2015/11/12/pip-save-npm-like-behaviour-to-pip/
安装(GitHub):https : //github.com/abhiomkar/pip-save
希望这可以帮助。
使shell函数执行此操作怎么样?将以下代码添加到您的
~/.profile
或~/.bashrc
然后运行
source ~/.profile
或source ~/.bashrc
将其导入到当前终端例如,当您要安装和保存程序包时,只需运行即可
pips requests
。安装软件包后,其版本将保存到requirements.txt
您的当前目录中。