在nodejs中,我可以执行npm install package --save-dev将安装的包保存到包中。
如何在Python包管理器pip中实现相同的功能?我想在使用pip install package --save-dev requirements.pip之类的工具安装完包之后,立即将包的名称及其版本保存到requirements.pip中。
发布于 2013-10-02 20:20:04
与pip没有等价物。
最好的方法是pip install package && pip freeze > requirements.txt
你可以在他们的documentation page上看到所有可用的选项。
如果它真的困扰您,那么编写一个接受-s参数并自动冻结到您的requirements.txt文件的自定义bash脚本(pips)也不是太难。
编辑1个
自写这篇文章以来,在提供类似于NPM的自动--save-dev选项方面没有任何变化,但是Kenneth Reitz ( requests和更多的作者)发布了更多关于better pip workflow的信息,以更好地处理pip更新。
编辑2
链接自上面的“更好的pip工作流程”文章,现在建议使用pipenv来管理需求和虚拟环境。最近我用了很多次,我想总结一下这个转换是多么的简单:
安装pipenv (在Mac上)
brew install pipenvpipenv创建并管理它自己的虚拟环境,因此在使用现有requirements.txt__的项目中,安装所有需求(我使用的是Python3.7,但如果不这样做,您可以删除--three )非常简单:
pipenv --three install激活virtualenv来运行命令也很容易
pipenv shell安装要求将自动更新Pipfile和Pipfile.lock
pipenv install <package>也可以更新过期的包
pipenv update我强烈推荐checking it out,特别是如果来自npm背景,因为它与package.json和package-lock.json有相似的感觉
发布于 2018-03-03 08:31:20
这条简单的线是一个起点。您可以很容易地构建一个bash命令来重用该行中的包。
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发布于 2017-10-13 16:15:24
我已经创建了一个名为pipm的python包,它包装了实际的pip。所有pip命令都将按原样工作,而且它们将反映在需求文件中。与pip-save (https://github.com/kgritesh/pip-save 5年不活跃)类似的工具不同,我发现它不能使用,它可以处理许多文件和环境(测试、开发、生产等)。它还具有升级所有/任何依赖项的命令。
安装
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
https://stackoverflow.com/questions/19135867
复制相似问题