pyenv / pyenv-virtualenv

a pyenv plugin to manage virtualenv (a.k.a. python-virtualenv)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hook for pyenv activate

danfrankj opened this issue · comments

I would like to be able to add a hook script when pyenv activate runs. In particular it would be helpful for me to be able to modify some environment vars.

It appears that some commands have such hooks: https://github.com/pyenv/pyenv-virtualenv/blob/master/bin/pyenv-virtualenv#L515

Let me know if you'd be open to adding such functionality to activate. Happy to create a PR if so

See also: pyenv/pyenv#2337

Too many issues will kill our team's development velocity, drastically.
Make sure you have checked all steps below.

Prerequisite

  • Make sure your problem is not listed in the common build problems.
  • Make sure no duplicated issue has already been reported in the pyenv-virtualenv issues. You should look in closed issues, too.
  • Make sure you are not asking us to help solving your specific issue.
    • GitHub issues is opened mainly for development purposes. If you want to ask someone to help solving your problem, go to some community site like Gitter, StackOverflow, etc.
  • Make sure your problem is not derived from packaging (e.g. Homebrew).
    • Please refer to the package documentation for the installation issues, etc.
  • Make sure your problem is not derived from other plugins.
    • This repository is maintaining the pyenv-virtualenv plugin only. Please refrain from reporting issues of other plugins here.

Description

  • Platform information (e.g. Ubuntu Linux 20.04):
  • OS architecture (e.g. amd64):
  • pyenv version:
  • pyenv-virtualenv version:
  • Python version:
  • virtualenv version (if installed):
  • Please attach the debug log of a faulty Pyenv invocation as a gist
    • If the problem happens in a Pyenv invocation, you can turn on debug logging by setting PYENV_DEBUG=1, e.g. env PYENV_DEBUG=1 pyenv install -v 3.6.4
    • If the problem happens outside of a Pyenv invocation, get the debug log like this:
      export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'
      set -x
      <reproduce the problem>
      set +x
      

@yyuu has approved it in pyenv/pyenv#2337 (comment).
I trust his judgement here so no objections from me, either.

Go ahead but do heed his warnings about possible side effects -- in particular, think carefully where exactly to insert the call point so that it's potentially useful for more use cases than just yours and how to name and/or where to locate the hook executables to avoid confusion.

+1
This would be really helpful - currently I just source the 'activate' script to work around this, would be nice to just use the pyenv tooling.