为何`lsvirtualenv`无法显示我创建的虚拟环境?
为什么lsvirtualenv不显示你用virtualenv创建的env环境?
哈哈,这个问题我之前刚踩过类似的坑!核心原因其实是virtualenv和virtualenvwrapper的环境管理逻辑不一样,具体来说:
问题根源
- virtualenvwrapper是virtualenv的上层管理工具,它默认只会识别
WORKON_HOME(也就是你配置的~/.virtualenvs)目录下的虚拟环境。 - 你直接用
virtualenv env在某个文件夹创建的环境,是存放在当前目录的env文件夹里,根本不在~/.virtualenvs下,所以lsvirtualenv扫不到它。 - 另外,virtualenvwrapper有自己专属的创建命令,不是直接用virtualenv哦!
解决办法
方法1:把已有的env迁移到指定目录
如果不想重新创建环境,只需要把当前目录的env文件夹移动到WORKON_HOME目录下就行:
mv ./env ~/.virtualenvs/
之后再运行lsvirtualenv,就能看到这个环境了,也可以用workon env直接进入。
方法2:用virtualenvwrapper的命令创建环境
以后创建虚拟环境,直接用virtualenvwrapper提供的mkvirtualenv命令,它会自动把环境放在~/.virtualenvs目录下:
mkvirtualenv env
创建完成后,lsvirtualenv立刻就能显示,而且还能直接用workon env切换,非常方便。
额外检查项
确认你的配置已经生效:
echo $WORKON_HOME
如果输出是/home/你的用户名/.virtualenvs,说明配置没问题;如果不是,再重新执行一次source ~/.zshrc或者source ~/.profile,确保环境变量加载成功。
内容的提问来源于stack exchange,提问作者MJimitater
相关产品推荐
相关产品推荐

