我正在使用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编辑哪个文件?
答案 0 :(得分:0)
您只需按正常方式设置PYTHONPATH
,无论是在您的shell启动脚本还是其他位置。当您使用pyenv virtualenv
切换到pyenv控制的virtualenv时,它会自动将此virtualenv的所有必要目录附加到sys.path
,但您在PYTHONPATH
变量中定义的任何目录都将在它们之前
根据以下评论中的讨论添加:
您可以在<command>
中为给定的pyenv命令$PYENV_HOME/pyenv.d/<command>/
创建钩子脚本。您甚至可以为pyenv的“瓷器”命令执行此操作,这些命令通常不会由用户直接调用。
应该可以为activate
创建一个钩子(当切换到virtualenv时由pyenv-virtualenv隐式调用),该钩子解析virtualenv的名称并基于此设置$PYTHONPATH
。
注意:我之前写过pyenv钩子,但没有明确测试过这个解决方案。