Pyenv virtualenv无法激活,尝试了我所知道的一切
如果有人能帮我解决这个问题,那就太好了。过去几天我尝试了各种方法,但都没有成功。我已经使用pyenv和它的插件virtualenv大约一个月了,一直没问题。可是有一天我醒来发现,无法激活我用pyenv创建的虚拟环境。运行“source bin/activate”不再有效。我尝试了从重新安装pyenv到重新安装Kubuntu的所有方法,但还是没用。我不知道哪里出错了。正如你们从下面的图片看到的,我没有收到任何错误信息。根据我的理解,每次我激活虚拟环境时,控制台上会显示我的名字前面有一些提示,但现在没有了。我确保添加了“echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc”以及其他所有需要的设置。pyenv的其他功能都正常,只有激活虚拟环境的问题。请帮帮我。谢谢!
1 个回答
我也花了一些时间才搞明白这一点,尤其是因为我之前是用virtualenvwrapper来管理我的虚拟环境的。对我有帮助的是,我查看了这个功能,发现了以下内容:
if [[ "$(pyenv version-name)" == "system" ]]; then
pyenv deactivate || true
elif [[ "$VIRTUAL_ENV" != "$(pyenv prefix)" ]]; then
pyenv deactivate || true
pyenv activate 2>/dev/null || true
fi
这里没有提到的是,当你在pyenv中创建一个虚拟环境时,它会显示为一个版本。所以当你执行
pyenv versions
你会看到一个包含你的Python版本和虚拟环境的列表。要让这个功能正常工作,其实是旧功能和新功能的结合。你可以这样做:
user@server [00:00:00] [~]
-> % cd Development/test
user@server [00:00:00] [~/Development/test]
-> % pyenv shell test
(test)user@server [00:00:00] [~/Development/test]
-> %
或者为了自动化:
user@server [00:00:00] [~]
-> % cd Development/test
user@server [00:00:00] [~/Development/test]
-> % pyenv local test
(test)user@server [00:00:00] [~/Development/test]
-> %
这样会生成一个包含Python版本的.python-version文件,pyenv会读取这个文件并将其作为虚拟环境的Python。
只要记得像管理pyenv的Python版本一样管理你的虚拟环境,你就能理清楚这些关系。例如,要自动退出虚拟环境,你只需更改目录。如果你使用了pyenv shell,你需要执行pyenv shell --unset或者pyenv shell {另一个版本}来切换虚拟环境。
希望这对你有帮助!