树莓派3 Model B(Python3.6)安装virtualenvwrapper遇初始化错误求助
这个报错的核心原因很明确:你的系统默认调用的是Python 2(/usr/bin/python指向的就是它),但你是给Python 3.6装的virtualenvwrapper,所以Python 2找不到对应的模块,自然跑不起来初始化钩子。下面是一步步的解决方法:
第一步:确认virtualenvwrapper的安装位置
先检查你是不是真的把virtualenvwrapper装到Python 3环境里了,执行这条命令:pip3 list | grep virtualenvwrapper
如果没有输出结果,说明你之前可能用错了pip,赶紧用Python 3的包管理器重新安装:sudo pip3 install virtualenv virtualenvwrapper
第二步:定位关键路径
你需要找到两个关键路径,后续配置要用到:
- 找到virtualenvwrapper.sh的位置:
which virtualenvwrapper.sh
通常会输出/usr/local/bin/virtualenvwrapper.sh,如果你的是装在用户目录下,可能是~/.local/bin/virtualenvwrapper.sh - 找到Python 3.6的可执行文件路径:
which python3.6
一般输出是/usr/bin/python3.6
第三步:修正环境变量配置
打开你的~/.profile或者更推荐的~/.bashrc(树莓派默认用bash,bashrc的配置更稳定),添加以下内容(记得把路径换成你刚才查到的实际路径):
# 指定virtualenvwrapper使用的Python版本为3.6 export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.6 # 定义虚拟环境的存放目录 export WORKON_HOME=$HOME/.virtualenvs # 指定virtualenvwrapper脚本的位置 export VIRTUALENVWRAPPER_SCRIPT=/usr/local/bin/virtualenvwrapper.sh # 加载virtualenvwrapper source /usr/local/bin/virtualenvwrapper.sh
如果你的virtualenvwrapper.sh是在~/.local/bin里,别忘了先把这个目录加到PATH里,不然系统找不到:export PATH=$HOME/.local/bin:$PATH
把这条也加到配置文件开头。
第四步:重新加载配置并测试
保存配置文件后,执行命令重新加载:source ~/.bashrc
(如果你坚持用.profile就执行source ~/.profile)
这时候再输入workon命令,如果没有报错,说明配置成功了!接下来你就可以创建专属的Python 3.6虚拟环境来装OpenCV了:mkvirtualenv -p python3.6 cv_env
之后用workon cv_env就能进入这个环境,放心装OpenCV就行。
额外提醒:如果还没装Python 3.6
要是你树莓派上还没有Python 3.6,先执行这几条命令安装:
sudo apt update sudo apt install python3.6 python3.6-dev python3-pip # 把Python3默认指向3.6 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
内容的提问来源于stack exchange,提问作者Christian Skjaeveland

