Mac 升级Python遇到Anaconda的冲突解决,以及pip/virtualenv升级

1,445 阅读2分钟

这是我参与8月更文挑战的第13天,活动详情查看:8月更文挑战

分享年初使用Anaconda遇到版本冲突的解决思路。之前Anaconda,没有特别设置使用了默认Python2,后来需要升级python。

发现这个过程问题还挺多的,主要是新的包只支持python3,不得不升级了。。。

直接使用命令 brew upgrade python 进行升级

这个命令会安装过程会下载一下依赖包,也会下载稳定版的python3。

Operation time out 问题

如果出现问题:Failed to connect to www.python.org port 443: Operation timed out

类似的错误:ERROR: Could not install packages due to an EnvironmentError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443)

这个主要是网络问题,建议重试几次之后重试brew升级命令

遇到xcode-select问题

单独运行 xcode-select --install .安装即可,Apple国内下载xcode相关包速度还够给力。

主要是brew安装新版python过程需要一些xcode的依赖。 brew update python

升级Python3之后发现terminal这边输入python -V,输出还是2.7

出现下面的情况,明明brew安装好了python3,可是重新开一个terminal输入python -V 仍然显示2.7。

重跑brew install提示已经安装了。。。

因为系统之前安装过anaconda,查看.bash_profile文件发现最后将conda.sh提前source了,path变量被动了。

这里需要将bash profile中conda 设置PATH这一段注释掉。

或者直接在bash profile,3.8版本的路径可以参考下面内容,直接添加到~/.bash_profile最后一行:

export PATH=/Library/Frameworks/Python.framework/Versions/3.8/bin:$PATH

 

旧的pip也需要进行升级

否则系统会一直显示2.7 Python 不支持(DEPRECATION: Python 2.7 reached the end of its life)相关的信息。

强烈建议升级, 否则有些项目使用pip命令会出现“socket.timeout: The read operation timed out” 这样的错误。

python -m pip install --upgrade pip

或者全路径:

/usr/local/bin/python -m pip install --upgrade pip

  

旧版的virtualenv需要升级安装

virtualenv命令可以使用但是就没有报错,不兼容,直接升级。

升级virtualenv需要使用pip命令来做:

pip install --upgrade virtualenv

virtualenv 创建一个虚拟环境

  运行下面的代码:

virtualenv tornado-web-01

 

至此,pip,virtualenv都是可以有效使用的,这次分享到这里。

持续学习持续开发,我是雷学委!
编程很有趣,关键是把技术搞透彻讲明白。
创作不易,请多多支持,点赞收藏支持学委吧!