当年,mac装virtualenv见鬼了

突然想在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

依次执行。

终完成。

你可能感兴趣的:(当年,mac装virtualenv见鬼了)