问题:pip等同于`npm install package –save-dev`吗?
在nodejs中,我可以npm install package --save-dev
将已安装的软件包保存到软件包中。
如何在Python包管理器中实现同一目的pip
?我想将软件包名称及其版本保存到,例如,requirements.pip
使用来安装软件包之后pip install package --save-dev requirements.pip
。
回答 0
没有与的等效项pip
。
最好的方法是 pip install package && pip freeze > requirements.txt
您可以在其文档页面上看到所有可用的选项。
如果确实让您感到困扰,那么编写一个自定义bash脚本(pips
)会很困难,该脚本带有一个-s
参数并requirements.txt
自动冻结到您的文件中。
编辑1
自编写此书以来,提供--save-dev
类似于NPM 的自动选项没有任何变化,但是Kenneth Reitz(requests
及更多作者)发布了一些有关更好的点子工作流程以更好地处理pip
更新的信息。
编辑2
从上面的“更好的点子工作流程”文章链接到现在,建议将其用于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
回答 1
这条简单的线是一个起点。您可以轻松构建一个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
回答 2
我创建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
回答 3
更新:显然,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
。
回答 4
我快速pip
添加--save
了安装/卸载命令选项。
请查看我的博客以获取有关此黑客的更多信息:http : //blog.abhiomkar.in/2015/11/12/pip-save-npm-like-behaviour-to-pip/
安装(GitHub):https : //github.com/abhiomkar/pip-save
希望这可以帮助。
回答 5
您可以将其手动保存在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
回答 6
我正在使用此小命令行来安装软件包并将其版本保存在requirements.txt
:
pkg=package && pip install $pkg && echo $(pip freeze | grep -i $pkg) >> requirements.txt
回答 7
使shell函数执行此操作怎么样?将以下代码添加到您的~/.profile
或~/.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 ~/.profile
或source ~/.bashrc
将其导入到当前终端
例如,当您要安装&&保存软件包时,只需运行即可pips requests
。安装软件包后,其版本将保存到requirements.txt
您的当前目录中。