突然想在mac上装virtualenv
然后,见鬼了。
我想做的事情,就是装虚拟环境
sudo pip3 install virtualenv #安装虚拟环境
顺利的话,应该在home目录下存在一个名为.virtualenvs
的文件夹
sudo pip3 install virtualenvwrapper
顺利的话,/usr/local/bin/
存在virtualenvwrapper.sh
然后,我在home下的.bash_profile
文件上,配置上如下代码
# python 虚拟环境的配置
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
保存,然后通过 source .bash_profile
让配置生效。
最后,可以通过mkvirtualenv -p python3 py_test
建立虚拟环境。
问题1 提示说在python3.7已经安装的
大概位置和报错如下
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages
本想,那就顺着这个这个很长很长很长的位置来设置呗。
期间也是各种失败。
解决办法
一怒之下,简答 粗暴,删Python3.7
详参:https://liyang.pro/macos-uninstall-python3/
以下分割线部分是对上面链接的纯纯地拷贝,侵删。
查看Python3的位置
which python3
/Library/Frameworks/Python.framework/Versions/3.5/bin/python3
或者
where python3
/Library/Frameworks/Python.framework/Versions/3.5/bin/python3
/usr/local/bin/python3
卸载Python3
删除框架
sudo rm -rf /Library/Frameworks/Python.framework/Versions/x.x
x.x代表你的版本,比如我的是3.5
删除应用目录
sudo rm -rf "/Applications/Python x.x"
或者直接从Finder -> 应用程序 ,找到Python,点击右键,删除!
删除指向 Python 的连接
cd /usr/local/bin/
ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/x.x' | awk '{print $9}' | tr -d @ | xargs rm
由于我删除完框架后,对应的连接也就不存在了,所以我没有执行第三步。
此时,我们就已经将dmp文件安装的python3删除了。
删除3.7之后,顺利装上
sudo pip3 install virtualenv #安装虚拟环境
装虚拟环境,报找不到pip
解决办法 安装pip3
sudo easy_install pip
问题2:安装virtualenvwrapper报错 six 1.4.1
执行
sudo pip3 install virtualenvwrapper
报Found existing installation: six 1.4.1
解决办法
virtualenvwrapper需要依赖six,在安装six的时候发现系统已经有一个six-1.4.1,但是virtualenvwrapper需要six-1.9.0,于是想先卸载老版本的six,此时问题来了,发现没有权限卸载,此时我就纳闷,加上sudo,还是没权限。于是Google之,最终还是在万能的GitHub找到答案。six-1.4.1是系统内置的packages,因 系统集成保护 你是没有权限去修改/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info目录的。因此在安装virtualenvwrapper的时候需要选择忽略six的安装:
**sudo pip install virtualenvwrapper --upgrade --ignore-installed six**
方法出自:
MacOS Sierra 安装 爬虫Scrapy或虚拟环境扩展包virtualenvwrapper,报Uninstalling six-1.4.1的解决方法
问题3 python 3.7.0 is already installed
执行mkvirtualenv -p python3 py_test
报python 3.7.0 is already installed, it's just not linked
办法:
sudo mkdir /usr/local/Frameworks
sudo chown $(whoami):admin /usr/local/Frameworks
.
.
看起来是可以的,但是又出现
Could not symlink share/doc/python/_images/hashlib-blake2-tree.png
办法
brew unlink python
brew link --overwrite python
brew link --overwrite --dry-run python
依次执行。
终完成。