hll*_*lau 174 python pip node.js
在nodejs中,我可以npm install package --save-dev将已安装的包保存到包中.
我如何在Python包管理器中实现相同的功能pip?我想将软件包名称及其版本保存到requirements.pip安装包之后,比如说pip install package --save-dev requirements.pip.
Ewa*_*wan 141
没有相应的pip.
最好的方法是 pip install package && pip freeze > requirements.txt
您可以在其文档页面上查看所有可用选项.
如果它真的困扰你,那么编写一个自定义bash脚本(pips)来获取-s参数并requirements.txt自动冻结到你的文件并不会太困难.
编辑1
自写这篇文章以来,提供--save-dev类似于NPM 的自动选项没有任何变化,但Kenneth Reitz(requests以及更多的作者)发布了更多关于更好的pip工作流程的信息,以更好地处理pip更新.
编辑2
从上面的"更好的点工作流程"文章链接,现在建议用它pipenv来管理需求和虚拟环境.最近我使用了很多这个,我想总结过渡是多么简单:
安装pipenv(在Mac上)
brew install pipenv
Run Code Online (Sandbox Code Playgroud)
pipenv创建和管理它自己的虚拟环境,所以在一个现有的项目中requirements.txt,安装所有需求(我使用Python3.7但你可以删除,--three如果你不这样做)就像这样简单:
pipenv --three install
Run Code Online (Sandbox Code Playgroud)
激活virtualenv以运行命令也很容易
pipenv shell
Run Code Online (Sandbox Code Playgroud)
安装要求将自动更新Pipfile和Pipfile.lock
pipenv install <package>
Run Code Online (Sandbox Code Playgroud)
也可以更新过期的软件包
pipenv update
Run Code Online (Sandbox Code Playgroud)
我强烈建议检查它,特别是如果来自npm背景,因为它有类似的感觉package.json和package-lock.json
Kar*_*jux 27
这条简单的线是一个起点.您可以轻松地构建一个bash命令来重用该行中的PACKAGE.
pip install PACKAGE && pip freeze | grep PACKAGE >> requirements.txt
Run Code Online (Sandbox Code Playgroud)
感谢@devsnd的简单bash函数示例:
function pip-install-save {
pip install $1 && pip freeze | grep $1 >> requirements.txt
}
Run Code Online (Sandbox Code Playgroud)
要使用它,只需运行:
pip-install-save some-package
Run Code Online (Sandbox Code Playgroud)
我创建了围绕实际pip调用的python 包pipm。所有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
更新:显然,pipenv 并未得到 Python 维护者的正式认可,并且之前链接的页面由不同的组织拥有。该工具有其优点和缺点,但下面的解决方案仍然达到了OP所寻求的结果。
\nPipenv是一个依赖管理工具,它包装pip并提供您所要求的内容:
https://pipenv.kennethreitz.org/en/latest/#example-pipenv-workflow
\n\n\n\n
$ pipenv install <package>如果\xe2\x80\x99 不存在,这将创建一个 Pipfile。如果确实存在,它将自动使用您提供的新包进行编辑。
\n
APipfile直接等价于package.json,而Pipfile.lock对应于package-lock.json。
| 归档时间: |
|
| 查看次数: |
57155 次 |
| 最近记录: |