![](/img/trans.png)
[英]Issues with pyenv-virtualenv: Python and PIP not changed when activating / deactivating virtual environment
[英]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.