Mac OSX同时安装Python 2.7和Python3.6及常见问题解决

Mac OSX本身系统自带Python2.7,但 不建议直接使用、删除和更改,因为可能有些程序是需要依赖系统自带的python 2.*,盲目修改后可能会导致系统产生未知错误。

所以建议在 不修改系统的python条件下 搭建Python双版本环境。

Mac OSX在系统自带的python之外,可以 安装Python2.7和Python3.5/3.6版本 ,并且双版本兼容。

安装步骤参照:MAC OSX 正確地同時安裝 PYTHON 2.7 和 PYTHON3【步骤也同步粘贴到了
本文下方,防止原文链接失效】

在参考的安装流程中,我发现了一些问题并进行了解决,列出问题及解决方法如下:

1.Python2.7安装后,按原文博主的安装方法无法修改系统默认的Python命令为自己安装Python路径和版本:

解决方法:

打开系统配置文件:

vi ~/.bash_profile

添加入自己的安装的Python2.7的路径地址:

PATH="/usr/local/Cellar/python/2.7.14/bin:${PATH}"

让PATH变量生效:

source ~/.bash_profile

我们看到,命令行输入which python2.7时,路径地址改变,不再是系统默认地址:

《Mac OSX同时安装Python 2.7和Python3.6及常见问题解决》 python2.7

我们前往路径地址修改添加
python文件:(复制一个python2.7然后重命名为python即可)

《Mac OSX同时安装Python 2.7和Python3.6及常见问题解决》 前往路径地址修改添加`python`文件

这样默认的python即修改为我们所安装的python2.7版本,而非系统自带的python路径,命令行输入
which python查看:

《Mac OSX同时安装Python 2.7和Python3.6及常见问题解决》 查看所安装的python2.7版本

这样,我们就将系统的默认python命令链接到了我们所安装的python目录下,而非系统自带的python路径。

2.Python2.7和Python3.6安装后,pip2和pip3下载的包仍在Mac OSX系统自带的Python2.7的包目录下,而非Python2.7和Python3.6的安装目录:

问题图示如下:
pip的version都是系统自带python的包下载路径:

《Mac OSX同时安装Python 2.7和Python3.6及常见问题解决》 pip的version都是系统自带python的路径

pip的路径都是系统自带python的路径,而非我们的安装路径:

《Mac OSX同时安装Python 2.7和Python3.6及常见问题解决》 python的路径

解决方法:

打开系统配置文件:

vi ~/.bash_profile

添加入自己的安装的Python2.7和Python3.6的路径地址:

# for python
PATH="/usr/local/Cellar/python/2.7.14/bin:${PATH}"
PATH="/usr/local/Cellar/python3/3.6.2/bin:${PATH}"

让PATH变量生效:

source ~/.bash_profile

我们看到,命令行输入which pippip --version时,pip的路径地址改变,pip下载的包的地址也改变,不再是系统默认地址:

《Mac OSX同时安装Python 2.7和Python3.6及常见问题解决》 pip版本显示

这样,即可保证使用pip下载的包路径正确,且和我们所安装的两个版本python分别对应。

3.Pip总是不能正常下载包,安装模块包ConnectTimeoutError错误:

解决方法:

我们在使用pip无法正常下载包的时候可以使用国内镜像服务,如用豆瓣的源下载安装selenium包:

pip install selenium -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

如果是要给python3下载依赖,注意pip和python版本对应,同理:

pip3 install selenium -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

这样,即可正常的使用pip来下载安装包了。

安装流程

主要就这几个步骤而已,不会太困难的(或许有些你本来就装好了)
Step 1 安装Xcode
Step 2 安装套件管理工具Homebrew
Step 3 安装Python
Step 4 设定路径$PATH(不跟系统Python 打架)
Step 5 完成啰!确认安装结果~

Step 1 安装Xcode

可以到App Store搜寻Xcode并安装安装好了之后就把Xcode打开~第一次开启的时候会需要同意他的License Agreement之类的东西。然后到terminal输入来安装Xcode command line tool:

《Mac OSX同时安装Python 2.7和Python3.6及常见问题解决》

xcode-select--install

安装Xcode 就到此结束啰,要进入下一个步骤了!

Step 2安装套件管理工具:Homebrew


可以到官网或是在terminal 里贴上:

《Mac OSX同时安装Python 2.7和Python3.6及常见问题解决》

ruby-e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装好后可以跑一下

brew doctor

如果出现

Your system is ready to brew.

代表万事OK,那如果有Warning的话,也不用太担心,可以按照里面的步骤去修正就好啰!
如果有出现Warning的话,虽然会在上面看到一句

If everything you use Homebrew for is working fine: please don't worry and just ignore them.

不过还是建议大家把东西装好,才不会到时候忘记自己到底什么东西还没设定好。

Step 3 安装Python

接下来要正式进入安装Python的步骤了!
首先,输入

python --version

天哪!都还没开始装Python,电脑里面怎么已经有了?
这是Mac系统要使用的Python,所以平常没适不要去乱动比较好唷!
所以现在我们要用homebrew来安装平常可以(乱搞?)使用的Python。
利用homebrew 搜寻Python

brew search python

这时候,会看到python和python3。
因为我已经装了,所以旁边会写(installed)。要安装Python啰!

brew install python

这样就开始安装了。
装完之后在输入

brew install python3

在安装的时候,Python 会被安装在

《Mac OSX同时安装Python 2.7和Python3.6及常见问题解决》

/usr/local/Cellar

那就来看看这个资料夹吧

open /usr/local/Cellar/

《Mac OSX同时安装Python 2.7和Python3.6及常见问题解决》


就可以看到你正在安装的Python出现了!
除了​​Python之外,也有可能会装一些其他的东西,例如sqlite。
总之,不用太担心,homebrew会自己搞定。
(因为我装了很多哩哩抠抠,所以你的资料夹里可能不会有这么多东西)

Step 4 设定路径$PATH(不跟系统Python 打架)

什么是路径$PATH 呢?
还记得我们在装Python的时候,输入了brew,
系统就自动会知道要开始跑homebrew。
系统到底怎么知道我们的brew在哪里?
这就是$PATH的用途了!

echo $PATH

接下来就会看到一串类似这样的东西

/usr/bin**:**/bin**:**/usr/sbin**:**/sbin**:**/usr/local/bin

分号(:)是分隔的意思
所以当你在terminal里面输入brew时
系统就会开始从/usr/bin找起
如果在/usr/bin里面找不到的话
就会往下一个/bin去搜寻,以此类推
现在,我们回到资料夹去看
brew其实就在/usr/local/bin里面!

《Mac OSX同时安装Python 2.7和Python3.6及常见问题解决》

所以现在的问题就是,系统在/usr/bin里面也有一份Python
现在我们在/usr/local/Cellar里面也装了Python
这样在terminal打上python指令时,谁会被开启呢?
因为路径有顺序,所以它会先找到系统的Python
现在就要来解决这个问题

sudo emacs/etc/paths

sudo让我们取得管理员权限
用emacs这个程式编辑路径档案
terminal会要求输入密码
(就是平常装东西也需要输入的密码)现在要把/usr/local/bin移到上面去control + k:把一行字剪下来control + y:把字贴上control + x + s:存档control + x + c:关掉emacs

《Mac OSX同时安装Python 2.7和Python3.6及常见问题解决》
《Mac OSX同时安装Python 2.7和Python3.6及常见问题解决》

这时,再打一次

echo $PATH

为什么没有变!?
因为要开一个新的terminal才会更新唷!
开新式窗后再输入一次就会看到我们刚刚修改的结果了。

Step 5 完成啰!确认安装结果~

这样就完成啰!
其实python3本身比较不会跟其他人打架
因为他就是独立的python3
所以我们主要是要确认是不是读到我们用brew装的python

which python 

这时候看到

/usr/local/bin/python

再来看看python3 吧

which python3

应该会是

/usr/local/bin/python3

就代表读到刚刚装好的python啰!
当然如果你要跑系统本身的python
(应该是用不到啦~)
就输入

/usr/bin/python

总之就是…大功告成啰!

    原文作者:weberweber
    原文地址: https://www.jianshu.com/p/deb70bd6a555
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞