管理Mac的Python环境
问题描述
我的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
官房文档对脚本安装的描述。请查看这里。文档介绍了脚本会对系统做哪些改动,对应地我们把这些改动恢复即可。详细操作如下:
- 删除
/Library/Frameworks/Python.Frameworks
- 删除
/Application/Python 3.6
- 删除
.bash_profile
文件中导出的有关Python3.6的路径和环境变量,然后使用source ./bash_profile
命令让改动生效。
使用HomewBrew
安装Python2
和Python3
安装方法网上有很多介绍,我是参考了“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
同理。因此开发时需要区分这三者,这看起来有点别扭。
但我认为使用python2
和python3
显式指定版本没什么坏处,多一个字符而已。
我们有必要保持系统自带的Python
环境的完整性。一方面,不在这样做可能导致你使用的第三方Python
库对系统的产生影响。例如:你自己安装pip
工具可能出现它依赖的其他库你没有完整提供。另一方面,系统自带的Python
主要是服务于那些为Mac量身定做的软件,如果你私自改动可能会导致将来你的安装的软件运行出现异常。
这种方案在对Python
代码进行打包发布时也有好处。如果你是开发Python
应用软件的人,你可以显式指定版本进行开发工作,只要在打包或者发布的时候为用户的环境设身处地的进行配置即可。生成的包还可以在Mac原生的Python
环境下进行alpha测试,因为这个环境跟目标用户的环境应该是一致的。
本文同步博客
管理Mac的Python环境的更多相关文章
- 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 ...
- Anaconda 查看、创建、管理和使用python环境
1. 查看Python环境 conda info --env可以看到所有python环境,前面有个‘*’的代表当前环境: 2.创建Python环境 conda create --name python ...
- Mac安装python 环境& pychaem
一.文档说明 在Mac上其实自带python环境,但是很多的library安装python是2.7的版本. 验证:可以在终端Terminal中输入:python 如下图是未安装之前,但是咱们需要在自己 ...
- MAC上python环境搭建
mac自带的有python,如果你需要查看版本,打开terminal输入以下命令: python --version 如果你需要安装新的python版本,有几种方法可以安装,一是去python官网下载 ...
- Mac版-python环境配置(一):Python下载安装
Mac OS X系统自带python,可以在终端输入python查看版本[输入exit()即可退出],如下: 从上图中可以看到,mac自带python 2.7.10,版本相对较低.现在python已升 ...
- Mac版-python环境配置(二):编译器pycharm下载安装
简介 PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳转.智能提示.自动完成.单元测试.版本 ...
- Mac搭建python环境
1 安装xcode 2 安装 brew ruby-e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/mast ...
- 2.Python环境搭建Window、mac、linux
1.Windows安装Python详解 使用任何高级编程语言都需要有一个自己的编程环境,Python 也不例外.只要使用 Python,就必须要配置 Python 的开发和运行环境. Python 本 ...
- anconda使用---使用conda管理python环境
一.动机 最近打算折腾vn.py,但只有py27版本的,因为一向习惯使用最新稳定版的,所以不得不装py27的环境,不得不说 Python的全局锁真的很烦. 身为懒癌患者,必然使用全功能的anacond ...
随机推荐
- [bzoj1826] [JSOI2010]缓存交换
虽然不知道为什么..但显然,每次扔掉离下次查询最远的内存单元就行了233 用堆来维护贪心...(优先队列大法好 #include<cstdio> #include<iostream& ...
- CodeForces628-B.New Skateboard
B. New Skateboard time limit per test 1 second memory limit per test 256 megabytes input standard in ...
- C. The Smallest String Concatenation
C. The Smallest String Concatenation time limit per test 3 seconds memory limit per test 256 megabyt ...
- JqGrid 多行表头设置
1.我想要统计的效果是这样的 2.只要在初始化表格中加上如下代码就可以了: jQuery("#tbAbroadStatisticByUnit").jqGrid('setGroupH ...
- [学习OpenCV攻略][007][缩小图片]
cvPryDown(输入图片,输出图片) 根据输出图片的大小,把输入图片进行压缩 cvPryUp(输入图片,输出图片) 根据输出图片的大小,把输入图片进行放大 #include "cv.h& ...
- Version 1.7.0_80 of the JVM is not suitable for this product.Version: 1.8 or greater is required.
Eclipse启动失败,设置eclipse启动jdk有2种方法 第一种: 直接安装eclipse对应的jdk版本,并设置环境变量 第二种: 修改eclipse配置文件eclipse.ini 在plug ...
- 为什么要进行URL编码
我们都知道Http协议中参数的传输是"key=value"这种简直对形式的,如果要传多个参数就需要用“&”符号对键值对进行分割.如"?name1=value1&a ...
- AVAudioPlayer与MPMusicPlayerController的区别
播放在App中的音频时,使用AVAudioPlayer 播放音乐库中的文件时,使用MPMusicPlayerController
- java 三大框架
SSH即:Spring.Struts.HibernateSpring:功能强大的组件粘合济,能够将你的所有的java功能模块用配置文件的方式组合起来(还让你感觉不到spring的存在)成为一个完成的应 ...
- href
<a href="#"></a>点击浏览器会跳转地址栏加了#:<a href=""></a>点击会打开当前网页所 ...