前言
为了应付不同的开发需求,装virtualenvwrapper是很有必要的,但大家的机器配置各不相同,遇到的情况可能也不相同,这时候去官网看是最好的选择,但是架不住官网信息量太大,所以网上搜索教程才是大多数人的选择,那么这时候就要注意选择时间最新的教程了,毕竟随着版本的迭代更新,配置环境这事儿还是有时效性的,这篇给出mac下安装virtualenvwrapper可能会遇到的问题以及解决方案。
问题目录
-bash: mkvirtualenv: command not found
-bash: /usr/local/bin/virtualenvwrapper.sh: No such file or directory
-bash: virtualenvwrapper.sh: No such file or directory
ERROR: virtualenvwrapper could not find virtualenv in your path
- 每次退出终端后都要重新
source ~/.bashrc
先给出一份本文要解决的问题列表,看看有没有你也需要解决的。
正文
正常安装步骤(以python3.6为例):
-
安装virtualenvwrapper
pip3 install --user virtualenvwrapper
-
配置~/.bashrc,让Bash自动加载virtualenvwrapper
一开始参考《Python测试驱动开发》时,我是这么做的:
echo "source virtualenvwrapper.sh" >> ~/.bashrc
source ~/.bashrc
然后初始一个虚拟环境,测试一下有没有配置好:
mkvirtualenv --python=python3.6 superlists
但是报错了...错误如下(目录中的第一个错误):
-bash: mkvirtualenv: command not found
搜索之后发现,是~/.bashrc没有配置好,于是vim ~/.bashrc
开始配置:
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
export VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
保存之后执行source ~/.bashrc
,继续报错-bash: /usr/local/bin/virtualenvwrapper.sh: No such file or directory
,大概明白了错误在哪里,virtualenvwrapper.sh
这个文件找不到了,好办,接下来展示一下如何花式找文件:
2.1 which virtualenvwrapper.sh
,书上提供的方法,不过我试了没反应,大家可以试试看
2.2 sudo find / -name virtualenvwrapper.sh
,一定要加sudo,不然因为文件权限的原因,会一直Permission denied,等了一会儿成功找到了路径:
/Users/macbook/Library/Python/3.6/bin/virtualenvwrapper.sh
2.3 就是建议大家找之前先去 /Users/*/Library/Python/*/bin/
或者/Library/Frameworks/Python.framework/Versions/*/bin/
(*内容根据你自身配置决定),这几个路径找找看,一般都安装在这里。
找到之后,就可以配置~/.bashrc
了,我的完整配置如下(记得保存执行source ~/.bashrc
):
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
export VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
source /Users/macbook/library/Python/3.6/bin/virtualenvwrapper.sh
到这里,关于~/.bashrc
的配置就结束了
-
配置virtualenv,建立软连接
配置完~/.bashrc
之后,我们就要开始新建一个虚拟环境实施了:
输入命令:mkvirtualenv --python=python3.6 superlists
很不幸,又报错了,这次的错误如下:
ERROR: virtualenvwrapper could not find virtualenv in your path
产生这个错误的原因是virtualenv直接被默认安装在了Python目录下,因此我们需要将它和外部建立一个软连接,命令如下(具体路径视你的配置而定):
sudo ln -s /Users/macbook/Library/Python/3.6/bin/virtualenv /usr/local/bin/virtualenv
搞定之后就完成了所有的配置了,接下来只需要:
mkvirtualenv --python=python3.6 name
就可以愉快的开始新建了。
这里说一下简单的几个命令:
-
workon name
开启你建立的虚拟环境,新建的时候是默认开启的 -
deactivate
关闭退出
- 但是...问题到这里还没有结束!看问题5,第二天我打开终端后使用
workon superlists
的时候发现command not found
???一番操作才发现原来每次打开一个新的终端时都要执行一遍source ~/.bashrc
才能运行。
这里给出一个解决办法(当然如果你不觉得每次都要输source ~/.bashrc
麻烦,那下面的就不用看了):
a. 打开终端输入:vi ~/.bash_profile
b. 在.bash_profile文件的最末尾上加入如下语句:
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
之后保存退出就可以了,再次重新打开,就不用重复执行source ~/.bashrc
啦,
至此,这篇教程就结束了,有问题欢迎交流。