2

我正在使用pyenv及其插件pyenv-virtualenv

我的问题是:当我在 pyenv-virtualenv 上激活一些虚拟环境时,如何修改 PYTHONPATH 环境变量?

$ pyenv activate myenv
$ echo $PYTHONPATH  # I want this variable!

当我使用简单的 virtualenv 时,我可以通过编辑修改 PYTHONPATHvirtualenv_home/your_env/bin/activate

export OLD_PYTHONPATH=$PYTHONPATH
export PYTHONPATH="/path/to/you/want"

我应该为 pyenv-virtualenv 编辑哪个文件?

4

1 回答 1

0

您只需PYTHONPATH按照正常方式进行设置,无论是在您的 shell 启动脚本中还是其他地方。当您使用 切换到 pyenv 控制的 virtualenv 时pyenv virtualenv,它会自动将此 virtualenv 的所有必要目录附加到sys.path,但您在PYTHONPATH变量中定义的任何目录都将位于它们之前。

根据以下评论中的讨论添加:

你可以为给定的pyenv 命令创建钩子脚本<command>$PYENV_HOME/pyenv.d/<command>/您甚至可以对 pyenv 的“瓷器”命令执行此操作,这些命令通常不会由用户直接调用。

应该可以为activate(在切换到 virtualenv 时由 pyenv-virtualenv 隐式调用)创建一个钩子,它解析 virtualenv 的名称并$PYTHONPATH基于该名称进行设置。

注意:我之前写过 pyenv 钩子,但没有明确测试过这个解决方案。

于 2016-02-03T14:23:00.340 回答