pip相当于“npm install package--save dev”是什么?

2024-05-15 22:42:41 发布

您现在位置:Python中文网/ 问答频道 /正文

在nodejs中,我可以npm install package --save-dev将安装的包保存到包中。

如何在Python包管理器中实现相同的功能pip?我想在使用类似pip install package --save-dev requirements.pip的方法安装包之后,将包名称及其版本保存到requirements.pip


Tags: installpip方法dev功能版本名称package
3条回答

没有与pip等价的。

最好的方法是pip install package && pip freeze > requirements.txt

您可以在它们的documentation page上看到所有可用的选项。

如果真的让您感到困扰,那么编写一个自定义bash脚本(pips)就不会太困难,该脚本接受一个-s参数并自动冻结到您的requirements.txt文件中。

编辑1

自编写本文以来,在提供类似于NPM的自动--save-dev选项方面没有任何变化,但是Kenneth Reitz(作者requests)发布了关于better pip workflow的更多信息,以便更好地处理pip更新。

编辑2

链接自上面的“更好的pip工作流”文章,现在建议使用^{}来管理需求和虚拟环境。最近我经常使用这个方法,我想总结一下转换是多么简单:

安装{}(在Mac上)

brew install pipenv

pipenv创建并管理自己的虚拟环境,因此在一个具有现有requirements.txt的项目中,安装所有需求(我使用Python3.7,但如果不安装,您可以删除--three)非常简单:

pipenv --three install

激活virtualenv运行命令也很容易

pipenv shell

安装需求将自动更新PipfilePipfile.lock

pipenv install <package>

还可以更新过期的软件包

pipenv update

我强烈推荐checking it out,尤其是来自npm背景的,因为它有类似于package.jsonpackage-lock.json的感觉

这条简单的线是一个起点。您可以轻松地构建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

更新:显然,pipenv is not officially endorsed by Python maintainers,而previously-linked page属于另一个组织。这个工具有它的优点和缺点,但是下面的解决方案仍然达到了OP正在寻求的结果。

pipenv是一个依赖关系管理工具,它包装了pip,并提供了您所要求的内容:

https://docs.pipenv.org/basics/#example-pipenv-workflow

$ pipenv install <package>

This will create a Pipfile if one doesn’t exist. If one does exist, it will automatically be edited with the new package your provided.

A Pipfilepackage.json的直接等价物,而Pipfile.lock对应于package-lock.json

相关问题 更多 >