建议:不安装 virtualenv,直接安装 virtualenvwrapper
pip install -i https://pypi.douban.com/simple/ virtualenvwrapper
配置 ~/.zshrc
为:
WORKON_HOME=$HOME/virtualenvs
source /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh
1 安装虚拟环境包
安装
pip install virtualenv
pip install virtualenvwrapper
豆瓣源安装
sudo pip install -i https://pypi.douban.com/simple virtualenvwrapper
2 配置 virtualenvwrapper 进环境变量
查找路径
sudo find / -name virtualenvwrapper.sh
或
which virtualenvwrapper.sh
得到
/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh
如果是pip3 install
则是:
/Library/Frameworks/Python.framework/Versions/3.5/bin/virtualenvwrapper.sh
配置
把virtualenvwrapper写进配置文件,增加两句话:
vim ~/.zshrc
或 vim ~/.bashrc
:
把虚拟环境的包都放在$HOME
就是用户目录下的 .virtualenvs
隐藏目录下,它会自己新建。
export WORKON_HOME=$HOME/.virtualenvs
然后source 配置virtualenvs所在目录,上面用which找到过。
source /Library/Frameworks/Python.framework/Versions/3.5/bin/virtualenvwrapper.sh
但是配置文件我这里写得是这样完整的两行:
export WORKON_HOME=$HOME/virtualenvs
source /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh
创建一个python2的scrapy目录:
mkvirtualenv py2scrapy
退出:
deactivate
查看虚拟环境
workon
进入虚拟环境
workon py2scrapy
删除虚拟环境
先进入virtualenvwrapper存放虚拟环境的目录。这是配置在.zshrc
文件中的。
cd .virtualenvs
删除
rm -rf py2scrapy
创建Python3的虚拟环境:
先找到python3安装位置
which python3
/Library/Frameworks/Python.framework/Versions/3.5/bin/python3
通过python3创建虚拟环境(名字叫py3scrapy)。
mkvirtualenv --python=/Library/Frameworks/Python.framework/Versions/3.5/bin/python3 py3scrapy
或者最直接的方法,让系统自己查找
mkvirtualenv newpy -p $(which python3)
3 对于找不到 virtualenv 的报错解决
出现这种错误,是因为 virtualenv 这个基础依赖包被安装在了Mac 的默认 Python 目录下,就需要做一个软连接 ln -s
。
ERROR: virtualenvwrapper could not find virtualenv in your path
首先还是用 find / -name "virtualenv"
去找到位置,最后这一行就是 virtualenv,可以看见在 Frameworks 目录,即 Mac 自带 Python 所在的位置。
sudo find / -name "virtualenv"
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv
最后进行软连接
$ sudo ln -s /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv /usr/local/bin/virtualenv