繁体   English   中英

在pyenv-virtualenv上激活虚拟环境时,如何导出PYTHONPATH?

[英]How to export PYTHONPATH when I activate a virtual environment on pyenv-virtualenv?

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

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

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

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

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

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

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

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

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

应该有可能创建一个用于activate的钩子(在切换到virtualenv时由pyenv-virtualenv隐式调用),该钩子解析virtualenv的名称并根据该名称设置$PYTHONPATH

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM