在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的东西。
当前回答
pip是不一样的。
最好的办法是pip install package && pip freeze > requirements.txt
您可以在他们的文档页面上看到所有可用的选项。
如果这真的让您感到困扰,那么编写一个自定义bash脚本(pips)并接受一个-s参数并自动冻结到您的requirements.txt文件并不太难。
编辑1
自从写了这篇文章以来,在提供一个类似于NPM的自动保存-开发选项方面没有任何变化,但是Kenneth Reitz(请求的作者)发布了一些关于更好的pip工作流的信息,以更好地处理pip更新。
编辑2
从上面的“更好的pip工作流”文章链接,现在建议使用pipenv来管理需求和虚拟环境。最近我经常用这个词,我想总结一下这个转变是多么简单:
安装pipenv (Mac)
brew install pipenv
pipenv创建并管理它自己的虚拟环境,所以在一个已有requirements.txt的项目中,安装所有需求(我使用Python3.7,但如果你不这样做,你可以删除——three)就像这样简单:
pipenv --three install
激活virtualenv来运行命令也很容易
pipenv shell
安装需求将自动更新Pipfile和Pipfile.lock
pipenv install <package>
也可以更新过期的包
pipenv update
我强烈建议你看看它,特别是如果你有npm的背景,因为它和package有相似的感觉。Json和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
您可以手动将其保存在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
更新:显然,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。
我在pip上做了一个快速的hack,添加了—save选项来安装/卸载命令。
请看看我的博客,了解更多关于这次黑客攻击的信息: http://blog.abhiomkar.in/2015/11/12/pip-save-npm-like-behaviour-to-pip/
安装(GitHub): https://github.com/abhiomkar/pip-save
希望这能有所帮助。
pip是不一样的。
最好的办法是pip install package && pip freeze > requirements.txt
您可以在他们的文档页面上看到所有可用的选项。
如果这真的让您感到困扰,那么编写一个自定义bash脚本(pips)并接受一个-s参数并自动冻结到您的requirements.txt文件并不太难。
编辑1
自从写了这篇文章以来,在提供一个类似于NPM的自动保存-开发选项方面没有任何变化,但是Kenneth Reitz(请求的作者)发布了一些关于更好的pip工作流的信息,以更好地处理pip更新。
编辑2
从上面的“更好的pip工作流”文章链接,现在建议使用pipenv来管理需求和虚拟环境。最近我经常用这个词,我想总结一下这个转变是多么简单:
安装pipenv (Mac)
brew install pipenv
pipenv创建并管理它自己的虚拟环境,所以在一个已有requirements.txt的项目中,安装所有需求(我使用Python3.7,但如果你不这样做,你可以删除——three)就像这样简单:
pipenv --three install
激活virtualenv来运行命令也很容易
pipenv shell
安装需求将自动更新Pipfile和Pipfile.lock
pipenv install <package>
也可以更新过期的包
pipenv update
我强烈建议你看看它,特别是如果你有npm的背景,因为它和package有相似的感觉。Json和package-lock.json