问题描述

我的Mac自带了版本为2.7.10的Python却没有用于管理依赖的pip工具。而我在使用刚开始学习Python时,从其官网下载了安装脚本安装了3.6版本的Python。脚本自动配置了环境变量,导致pip引用了3.6版本的pip3,我找遍了整个硬盘都无法找到版本2.7对应的pip

尴尬的是,目前有一份用Python2写的代码放在我面前,而我却因为无法安装依赖而无法执行它。我觉得这样的开发环境有问题,得找个方法解决它。

调研

在网上翻了一轮,看见了部分网友警告不要自己给系统自带的Python添加pip工具,原因是有可能导致系统异常。至于有何种异常我不想深究,我关注的是他们推荐使用HomeBrew管理自己的Python版本,保持系统的完整性。

解决步骤

1. 删除通过Python官网脚本安装的python3.6

由于我自己安装过Python,所以需要执行这一步。对于没有安装过的读者可以跳过这一步。

我参考了Python官房文档对脚本安装的描述。请查看这里。文档介绍了脚本会对系统做哪些改动,对应地我们把这些改动恢复即可。详细操作如下:

  1. 删除/Library/Frameworks/Python.Frameworks
  2. 删除/Application/Python 3.6
  3. 删除.bash_profile文件中导出的有关Python3.6的路径和环境变量,然后使用source ./bash_profile命令让改动生效。

使用HomewBrew安装Python2Python3

安装方法网上有很多介绍,我是参考了“MAC OSX 正確地同時安裝 PYTHON 2.7 和 PYTHON3”这篇文章。

不过我没有执行这篇文中介绍的修改环境变量顺序的步骤。我觉得这一步多余了。

经过这个步骤,HomeBrew为我管理了两个版本的Python,分别是2.7.14和3.6.4,在/usr/local/bin/目录下有相关命令。同时系统还有一个自带2.7.10版本的,放在/usr/bin目录中。

使用方法与优劣分析

以后开发过程中使用Python2的时候应该使用命令python2而不是使用python。因为,我的环境中命令python是MacOS自带的2.7.10版本。而命令python2则调用HomeBrew管理的python2.7.14,它在/usr/local/bin/目录中,是一个软链接,链接到/usr/local/Cellar/python/2.7.14_2/bin/python2中。命令python3同理。因此开发时需要区分这三者,这看起来有点别扭。

但我认为使用python2python3显式指定版本没什么坏处,多一个字符而已。

我们有必要保持系统自带的Python环境的完整性。一方面,不在这样做可能导致你使用的第三方Python库对系统的产生影响。例如:你自己安装pip工具可能出现它依赖的其他库你没有完整提供。另一方面,系统自带的Python主要是服务于那些为Mac量身定做的软件,如果你私自改动可能会导致将来你的安装的软件运行出现异常。

这种方案在对Python代码进行打包发布时也有好处。如果你是开发Python应用软件的人,你可以显式指定版本进行开发工作,只要在打包或者发布的时候为用户的环境设身处地的进行配置即可。生成的包还可以在Mac原生的Python环境下进行alpha测试,因为这个环境跟目标用户的环境应该是一致的。

本文同步博客

管理Mac的Python环境的更多相关文章

  1. mac下python环境pip报错[SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) 的解决方法

    1.mac下python环境pip报错: issuserdeMacBook-Pro:~ issuser$ pip install pyinstallerCollecting pyinstaller  ...

  2. Anaconda 查看、创建、管理和使用python环境

    1. 查看Python环境 conda info --env可以看到所有python环境,前面有个‘*’的代表当前环境: 2.创建Python环境 conda create --name python ...

  3. Mac安装python 环境& pychaem

    一.文档说明 在Mac上其实自带python环境,但是很多的library安装python是2.7的版本. 验证:可以在终端Terminal中输入:python 如下图是未安装之前,但是咱们需要在自己 ...

  4. MAC上python环境搭建

    mac自带的有python,如果你需要查看版本,打开terminal输入以下命令: python --version 如果你需要安装新的python版本,有几种方法可以安装,一是去python官网下载 ...

  5. Mac版-python环境配置(一):Python下载安装

    Mac OS X系统自带python,可以在终端输入python查看版本[输入exit()即可退出],如下: 从上图中可以看到,mac自带python 2.7.10,版本相对较低.现在python已升 ...

  6. Mac版-python环境配置(二):编译器pycharm下载安装

    简介 PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳转.智能提示.自动完成.单元测试.版本 ...

  7. Mac搭建python环境

    1 安装xcode 2 安装 brew ruby-e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/mast ...

  8. 2.Python环境搭建Window、mac、linux

    1.Windows安装Python详解 使用任何高级编程语言都需要有一个自己的编程环境,Python 也不例外.只要使用 Python,就必须要配置 Python 的开发和运行环境. Python 本 ...

  9. anconda使用---使用conda管理python环境

    一.动机 最近打算折腾vn.py,但只有py27版本的,因为一向习惯使用最新稳定版的,所以不得不装py27的环境,不得不说 Python的全局锁真的很烦. 身为懒癌患者,必然使用全功能的anacond ...

随机推荐

  1. April Fools Contest 2017 题解&源码(A,数学 B,数学 C,数学 D,字符串 E,数字逻辑 F,排序,卡时间,G,数学)

    A. Numbers Joke time limit per test:2 seconds memory limit per test:64 megabytes input:standard inpu ...

  2. BZOJ 1041: [HAOI2008]圆上的整点【数论,解方程】

    1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4210  Solved: 1908[Submit][Sta ...

  3. 51Nod 1090 3个数和为0(暴力)

    1090 3个数和为0 基准时间限制:1 秒 空间限制:131072 KB 分值: 5         难度:1级算法题 给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等.从 ...

  4. 安装linux的关键步骤

  5. 程序员之殇 —— (The Beginning of the End)噩梦、崩坏

    Look at all those faces out there (当我环视周遭的一张张脸孔) We are so different(我们是如此的不同) But we have one thing ...

  6. Navicat连接阿里云Mysql遇到的的坑

    连上去那一刻,心态真是起飞了

  7. 织梦DedeCMS提示信息框的修改,修改ShowMsg方法函数

    http://www.360doc.com/content/14/0408/13/16498929_367236469.shtml 织梦DedeCMS系统,处处都在用到提示信息,但是这个提示框,前台后 ...

  8. PHP项目开发

    PHP项目开发 =================================== member:(用户表) userid username password name mobile emai a ...

  9. respondsToSelector

    SEL sel = @selector (start:) ; // 指定action if ([obj respondsToSelector:sel]) { //判断该对象是否有相应的方法 [obj  ...

  10. 全栈开发之HTML快速入门(一)

    一.HTML 是什么? HTML 指的是超文本标记语言 (Hyper Text Markup Language) HTML 不是一种编程语言,而是一种标记语言 (markup language) 标记 ...