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

如何在Python包管理器pip中实现同样的事情?我希望将包名称及其版本保存到(比如说)需求中。在安装包后使用类似PIP install package——save-dev requirements.pip的东西。


当前回答

用一个壳函数来做这个怎么样? 将以下代码添加到~/。配置文件或~/.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 ~/。配置文件或源~/。Bashrc将其导入到当前终端

当你想安装并保存一个包时,只需要运行,例如pips请求。 安装包后,其版本将保存到当前目录的requirements.txt中。

其他回答

用一个壳函数来做这个怎么样? 将以下代码添加到~/。配置文件或~/.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 ~/。配置文件或源~/。Bashrc将其导入到当前终端

当你想安装并保存一个包时,只需要运行,例如pips请求。 安装包后,其版本将保存到当前目录的requirements.txt中。

您可以手动将其保存在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

我已经创建了一个python包,它包装了实际的pip,称为pipm。所有pip命令都将按原样工作,而且它们将反映在需求文件中。与pip-save(一段时间不活跃)不同,它可以处理许多文件和环境(测试、开发、生产等),这是我发现的一个类似的工具,但无法使用。它还有一个命令来升级所有/任何依赖项。

安装

Pipm安装pkg-name

安装作为开发依赖项

Pipm安装pkg-name——dev

安装作为测试依赖项

Pipm安装pkg-name——test

删除

Pipm卸载pkg-name

更新所有依赖项

pipm更新

从需求文件中安装所有依赖项

pipm安装

包括开发依赖项

Pipm安装——dev

我在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 freeze >> requirements.txt