【问题标题】:Pyenv virtualenv not activating, tried everything I knowPyenv virtualenv 没有激活,尝试了我所知道的一切
【发布时间】:2014-06-23 04:51:47
【问题描述】:
如果有人可以帮助我解决这个问题,那就太好了。在过去的几天里,我目前已经尝试了一切以使其正常工作,但没有成功。我已经使用 pyenv 和插件 virtualenv 大约一个月了,没有任何问题。一天醒来,发现我的 pyenv 创建的 virtualenv 无法激活。源 bin/activate 停止工作。我做了所有事情,从重新安装 pyenv 一直到重新安装 Kubuntu 并再次尝试但没有成功。我说不出有什么问题。如下图所示,我没有收到任何错误。据我了解,每次激活 virtualenv 时,它都会在我的控制台中显示在我的名字之前,但它不再这样做了。我确保添加 "echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc" 和所有其他所需的东西。 pyenv 可用的所有其他选项仍然可以正常工作,它只是激活我的 virtualenv。请帮忙。谢谢
【问题讨论】:
标签:
python
virtualenv
kubuntu
【解决方案1】:
这也让我有点理解,特别是因为我之前使用 virtualenvwrapper 管理过我的 virtualenv。有帮助的是我查看了函数并看到了这个:
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 中创建一个 virtualenv 时,它会显示为一个版本。所以当你这样做时
pyenv versions
您将获得一份包含您的虚拟环境的蟒蛇列表。为了让它发挥作用,它结合了旧功能和新功能。你可以这样做:
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 读取该文件并将其用作 virtualenv python。
只要记住像 python 版本的 pyenv 一样管理你的 virtualenv,你应该能够保持一切正常。例如,要自动停用,您只需更改目录。如果你做了 pyenv shell,你需要 pyenv shell --unset 或 pyenv shell {another_version} 来移动 virtualenv。
希望这会有所帮助!