【问题标题】:My virtualenv does not work after installing zsh安装 zsh 后我的 virtualenv 不起作用
【发布时间】:2015-04-01 15:59:00
【问题描述】:

我安装了 zsh,oh-my-zsh。并将 zsh 作为默认 shell。但是当我尝试用

激活我的 virtualenv
source bin/activate

没有任何影响。我的意思是没有错误,而且我不在我的虚拟环境中。然后我进入了我之前的 bash shell 并尝试激活,但它也没有帮助?

更新
当我创建新的 virtualenv 时,它运行良好。那么如何激活旧的呢?

【问题讨论】:

  • 你怎么知道没有效果?只是shell提示没有更新虚拟环境的名称还是实际上仍然是正在使用的系统环境?您可以通过echo $VIRTUAL_ENVtype python 进行检查。
  • source bin/activate 之后我在左侧看不到 virtualenv 名称。当我做 pip freeze 它列出了我系统中的所有包而不是我的 virtualenv
  • diff old_virtenv/bin/activate new_virtenv/bin/activate 是否提供任何见解?据我所知virtenv——至少是它的旧版本——只是假设正在使用bash。可能是bin/activate 中的某些构造不能与zsh 一起正常工作。
  • 在zsh中创建新的virtualenv时没有问题。
  • Bash 和 zsh 脚本在很多情况下是不兼容的。

标签: virtualenv zsh oh-my-zsh


【解决方案1】:

zsh virtualenv 插件默认隐藏 virtualenv 名称。

vim ~/.oh-my-zsh/plugins/virtualenv/virtualenv.plugin.zsh

你会在文件中看到这些

# disables prompt mangling in virtual_env/bin/activate
export VIRTUAL_ENV_DISABLE_PROMPT=1

散列 export VIRTUAL_ENV_DISBALE_PROMPT=1 并重新加载 ZSH。

你会看到

New python executable in /Users/edd/.virtualenvs/test2/bin/python2.7
Also creating executable in /Users/edd/.virtualenvs/test2/bin/python
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating
/Users/edd/.virtualenvs/test2/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/edd/.virtualenvs/test2/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/edd/.virtualenvs/test2/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/edd/.virtualenvs/test2/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/edd/.virtualenvs/test2/bin/get_env_details

尝试virtualenv进行测试。

您可以从以下网站获取更多信息 here.

【讨论】:

  • 谢谢!你把我从同样的问题中解救了出来。这个建议对我有用。
猜你喜欢
  • 2017-02-17
  • 2018-06-09
  • 1970-01-01
  • 1970-01-01
  • 2016-05-01
  • 2021-04-20
  • 2014-04-29
  • 2018-05-15
  • 1970-01-01
相关资源
最近更新 更多