我使用pyenv在我的机器上管理不同的Python版本,使用pyenv-virtualenv来管理我的venv。当我用pyenv virtualenv foo之类的东西创建一个新的venv时,它没有将最新版本的pip、setuptools和wheel安装到venv中。我想在创建完每个venv之后在里面运行pip install --upgrade pip setuptools wheel。
pyenv有命令前和命令后挂钩的概念。我可以通过添加以下文件来运行此命令
~/.pyenv/plugins/pyenv-virtualenv/etc/pyenv.d/virtualenv/after.bash
包含以下内容
after_virtualenv 'pip install --upgrade pip setuptools wheel'该命令是运行的,但它不是在venv内部运行的,因此它只使用当前的pip。如何在after_virtualenv钩子中的venv中调用此命令?
发布于 2019-02-11 17:35:03
好的,我已经弄明白了,你可以指定刚才创建的虚拟环境名称作为PYENV_VERSION,然后调用pyenv-exec。
upgrade_packages() {
PYENV_VERSION=$VIRTUALENV_NAME pyenv-exec pip install --upgrade pip setuptools wheel
}
after_virtualenv 'upgrade_packages'https://stackoverflow.com/questions/54169017
复制相似问题