1

如果有人可以帮助我解决这个问题,那就太好了。在过去的几天里,我目前已经尝试了一切以使其正常工作,但没有成功。我已经使用 pyenv 和插件 virtualenv 大约一个月了,没有任何问题。一天醒来,发现我的 pyenv 创建的 virtualenv 无法激活。源 bin/activate 停止工作。我做了所有事情,从重新安装 pyenv 一直到重新安装 Kubuntu 并再次尝试但没有成功。我说不出有什么问题。如下图所示,我没有收到任何错误。据我了解,每次激活 virtualenv 时,它都会在我的控制台中显示在我的名字之前,但它不再这样做了。我确保添加 "echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc" 和所有其他所需的东西。pyenv 可用的所有其他选项仍然可以正常工作,它只是激活我的 virtualenv。请帮忙。谢谢

之后的样子图片

4

1 回答 1

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

你会得到一个你的 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 读取该文件并将其用作 virtualenv python。

只要记住像 python 版本的 pyenv 一样管理你的 virtualenv,你应该能够保持直截了当。例如,要自动停用,您只需更改目录。如果你做了 pyenv shell,你需要 pyenv shell --unset 或 pyenv shell {another_version} 来移动 virtualenv。

希望这可以帮助!

于 2014-06-26T21:39:46.157 回答