代码之家  ›  专栏  ›  技术社区  ›  Ross MacArthur

如何在pyenv中创建post-virtualenv挂钩以升级pip包

  •  0
  • Ross MacArthur  · 技术社区  · 6 年前

    我正在使用 pyenv 在我的机器上管理不同的python版本,以及 pyenv-virtualenv 管理我的静脉。当我用类似 pyenv virtualenv foo 它不安装最新版本的 pip , setuptools wheel 进入静脉。我想跑步 pip install --upgrade pip setuptools wheel 在创建后的每个venv中。

    派涅夫 在命令前后具有钩子的概念。我可以通过添加以下文件来运行此命令

    ~/.pyenv/plugins/pyenv-virtualenv/etc/pyenv.d/virtualenv/after.bash

    包含以下内容

    after_virtualenv 'pip install --upgrade pip setuptools wheel'
    

    命令是运行的,但它不在venv内部运行,因此它只使用当前的 匹普 . 我如何在后虚拟环境钩子的venv中调用这个命令?

    1 回复  |  直到 5 年前
        1
  •  0
  •   Ross MacArthur    5 年前

    好吧,我知道了,你只需指定刚刚创建的virtualenv名称作为pyenv_版本并调用 pyenv-exec .

    upgrade_packages() {
      PYENV_VERSION=$VIRTUALENV_NAME pyenv-exec pip install --upgrade pip setuptools wheel
    }
    
    after_virtualenv 'upgrade_packages'