老 Mac OS 同时安装 Python2.7 和 Python 3

老 Mac 同时安装 Python2.7 和 Python 3

本文旨在比较旧 mac 系统上同时安装 Python2.7 和 Python3。


首先参考https://www.jianshu.com/p/51811fa24752 进行了安装,安装过程中发现说明文件有些过时,因此在后面进行安装过程记录,安装完成后 python3 安装模块正常,安装的模块也在 site-packages中,但是导入模块会出现错误,可能是电脑的问题。


由于需要在 python 3 中导入模块,因此,最终采用的是以下方案:

python 2.7 使用 Mac 内置的版本。

python 3.6 从https://www.python.org/downloads/release/python-364/ 下载安装器安装完成。

python 3.6 的安装路径为:/usr/loca/bin/python3。

安装完成后,可以安装模块并导入。


下面的内容记录的是 Mac 系统参数和参考https://www.jianshu.com/p/51811fa24752进行安装的过程。

Mac 系统:


mac.png

参考资料安装过程


参考:https://www.jianshu.com/p/51811fa24752

步骤 内容 结果 备注
1 安装 Xcode 失败 Xcode 是个 IDE,用 Pycharm 代替
2 安装套件管理工具 Homebrew 成功 安装过程中遇到两个问题,已在文中列出
3 安装 Python 成功 使用 brew install python 安装 python3,使用brew install python@2 安装 python2.7
4 设定路径$PATH 成功
5 确认安装结果 失败 可以运行 python3 和 python2.7,但是 python3 安装模块后无法导入,造成无法使用。

Step 1: 安装 Xcode


Xcode 是运行在 Mac OS X 上的集成开发工具( IDE ) ,可以在 App store 中搜索安装,但是由于老 Mac 的最新版本是 10.11.16,不能满足 Xcode 10.12.6 的要求,无法安装,因此跳过此步骤,乖乖使用 pyCharm。

xcode.png

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


安装 HomeBrew只需打开Teminal,输入以下命令:

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

但是,安装过程中出现一连串的问题:

安装问题 1 :无法连接 github ,导致无法下载

问题是这样的:

Fatal:unable to access 'https://github.com/Homebrew/brew':Failed to connect to github.com port 443:Operation time out</pre>

解决方案:

打开一个新的Terminal,输入:ping github.com

bogon:~ apple$ ping github.com
PING github.com (192.30.255.112): 56 data bytes
64 bytes from 192.30.255.112: icmp_seq=1 ttl=48 time=370.066 ms
64 bytes from 192.30.255.112: icmp_seq=2 ttl=48 time=301.871 ms
64 bytes from 192.30.255.112: icmp_seq=4 ttl=48 time=299.229 ms
64 bytes from 192.30.255.112: icmp_seq=5 ttl=48 time=300.999 ms

按ctrl+C停止,然后输入以下命令:

sudo vi /etc/hosts

屏幕上会提示输入密码(输入密码的时候不会有任何字符显示,甚至*都不会显示,输完之后按回车),这是屏幕显示的内容就是hosts文件的内容了。

按 i 进入插入模式,换行写入以下内容:

192.30.253.113 github.com

然后按esc退出插入模式,输入 :wq然后按回车退出。

再次输入以下命令:

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

即可实现下载。

问题2:下载安装后运行brew doctor,显示警告

警告内容为:

Homebrew's sbin was not found in your PATH but you have installed
formulae that put executables in /usr/local/sbin.
Consider setting the PATH for example like so
 echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile

按照提示,运行:

>> echo 'export PATH="/usr/local/sbin:$PATH"' 
>> ~/.bash_profile

没有任何反应,但是再次运行brew doctor,继续显示相同的警告内容。这行命令的意思是将环境变量输出到/.bash_profile中。于是先检查/.bash_profile。输入以下命令:

open -e .bash_profile

看到以下内容:

export PATH=/Library/PostgreSQL/9.5/bin:$PATH
export DYLD_LIBRARY_PATH="/Library/PostgreSQL/9.5/bin“
export PATH="/usr/local/sbin:$PATH"

似乎没有问题,运行source .bash_profile,报以下错误:

-bash: .bash_profile: line 3: unexpected EOF while looking for matching `"'
-bash: .bash_profile: line 4: syntax error: unexpected end of file

问题出在第二行最后的双引号,复制第三行最后的双引号替换第二行最后的双引号即可。

再次运行brew doctor,出现以下警告信息:

Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!
​
Warning: Setting DYLD_* vars can break dynamic linking.
Set variables:
 DYLD_LIBRARY_PATH: /Library/PostgreSQL/9.5/bin

step 3 安装 python


  1. 安装 python3,使用以下命令进行安装:

     brew install python3
    
    

安装完成后,查看 /usr/local/Cellar,发现只有 python 文件夹,文件夹下有 3.6.4_4。

  1. 安装python,使用以下命令进行安装:

    brew install python
    
    

结果显示安装成功,安装完成后,文件夹下面还是3.6.4_4。

使用以下命令查找安装源文件:

brew info python

可以看到以下输出:

    python: stable 3.6.4 (bottled), devel 3.7.0b2, HEAD
    Interpreted, interactive, object-oriented programming language
    https://www.python.org/
    /usr/local/Cellar/python/3.6.4_3 (3,615 files, 56.3MB)
     Poured from bottle on 2018-03-09 at 18:08:04
    /usr/local/Cellar/python/3.6.4_4 (4,615 files, 97.4MB)
     Poured from bottle on 2018-03-11 at 15:02:08
    From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/python.rb
    ==> Dependencies
    Build: pkg-config ✔, sphinx-doc ✘
    Required: gdbm ✔, openssl ✔, readline ✔, sqlite ✔, xz ✔
    Optional: tcl-tk ✘
    ==> Options
    --with-tcl-tk
     Use Homebrew's Tk instead of macOS Tk (has optional Cocoa and threads support)
    --devel
     Install development version 3.7.0b2
    --HEAD
     Install HEAD version
    ==> Caveats
    Python has been installed as
     /usr/local/bin/python3
    ​
    Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
    `python3`, `python3-config`, `pip3` etc., respectively, have been installed into
     /usr/local/opt/python/libexec/bin
    ​
    If you need Homebrew's Python 2.7 run
     brew install python@2
    ​
    Pip, setuptools, and wheel have been installed. To update them run
     pip3 install --upgrade pip setuptools wheel
    ​
    You can install Python packages with
     pip3 install <package>
    They will install into the site-package directory
     /usr/local/lib/python3.6/site-packages
    ​
    See: https://docs.brew.sh/Homebrew-and-Python</pre>

我们可以看到,如果需要安装 python2.7 ,应该使用以下命令:

   brew install python@2

这时我们可以看到 /usr/local/Cellar 增加了 python@2文件夹。

step 4 设定路径 $PATH


mac 内置的 python 路径为 /usr/bin,我们在 step3 中安装的 python2.7 和 python3.6 路径为 /usr/local/bin。

在使用 terminal 启动程序时,会安装 /etc/paths 文件中的路径搜索程序。因此,启动新安装的程序,需要 /etc/paths 文件中 /usr/local/bin 在 /usr/bin 之前。

使用 sudo vi /etc/paths 或者 sudo emacs /etc/paths 更改 /etc/path 文件中路径顺序,然后重启 terminal 即可。

step5 确认安装结果


在 terminal 中运行 which python,确认输出为:/usr/local/bin/python。

在 terminal 中运行 which python3,确认输出为:/usr/loca/bin/python3。

进一步,测试 python 安装模块命令 pip。这里我们使用 Pillow 模块进行测试。

运行以下命令为 python 2.7 安装 Pillow:

pip install pillow

安装完成后测试是否可用,在 terminal 中输入 python,然后输入以下指令:

from PIL import Images

如果没有报错,则 python 2.7 的 pip 正常运行。

然后运行以下命令为 Python 3.6 安装 Pillow:

pip3 install pillow

安装完成后在 terminal 中输入 python3 进入 shell ,然后输入以下指令:

from PIL import Images

结果报错:ModuleNotFoundError,安装其他模块也会出现上述错误。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,186评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,858评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,620评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,888评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,009评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,149评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,204评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,956评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,385评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,698评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,863评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,544评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,185评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,899评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,141评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,684评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,750评论 2 351

推荐阅读更多精彩内容