MacOs系统配置python总结:系统python、Conda、Homebrew切换及PATH配置
1.前言
最近设备从Windows切换到了OS,在配置python时遭遇了各种麻烦,本篇文章为个人经验总结并非专业知识,如有不准确请指正。
Windows像一个听话的助手,而Os更像一个有主见的管家。所以Os的Ui更加“整洁”,你不会被各种“不知所云”文件烦扰(许多系统文件被隐藏,在finder中难以找到)。但这的代价就是:处理复杂操作更依赖终端语言。
2.Mac如何查看文件
用finder
用finder
用finder
在左上方的go里面有各种分类,其中最上层的就是Computer。
也可以使用输入路径的方法(推荐),记住你在UI界面看到的文件不是完整的文件,很多文件被苹果系统隐藏了起来。
可以尝试输入以下几个路径,观察一下对应的是哪些文件:
/
/users
/usr/loacl
一定要自己摸索和思考文件夹的结构,在脑海中有个大概的框架,这对之后的操作是必不可少的。
3.MacOs的终端terminal
3.1打开终端
利用全局搜索command+space输入terminal,或者可以设置终端快捷键,我设置成了command+option+T。
这个框框就叫shell:
还可以用action bar调颜色:
3.2终端的版本
打开终端,输入:
echo $SHELL
如果输出的是:csh或者是tcsh,那么你用的就是C Shell。
如果输出的是:bash,sh,zsh,那么你的用的就是Bourne Shell的一个变种。
Mac OS X 10.2之前默认的是C Shell。
Mac OS X 10.3之后默认的是Bourne Shell。
关于几种常用不同的Shell:
Bourne Shell(简称sh) Unix默认的Shell,是其他Shell的开发基础。(AT&Bell实验室Steven Bourne为AT&T的Unix开发的)
C-Shell(简称csh) 基于sh,不同于sh,它提供了Bourne Shell所不能处理的用户交互特征,如命令补全、命令别名、历史命令替换等。但是,C Shell与BourneShell并不兼容。(加州伯克利大学的Bill Joy为BSD Unix开发的)
Korn Shell(简称ksh) 它集合了C Shell和Bourne Shell的优点,并且与Bourne Shell向下完全兼容。Korn Shell的效率很高,其命令交互界面和编程交互界面都很好。(AT&T Bell实验室的David Korn开发的)
Bourne Again Shell(简称bash) 它是Linux系统中一个默认的Shell。Bash不但与Bourne Shell兼容,还继承了C Shell、Korn Shell等优点。(自由软件基金会(GNU)开发的)
我使用的bash,版本间也可以切换。
3.3终端的配置文件
终端的配置文件可以理解为给电脑看的指令说明书。你想要在终端以一个简单指令实现复杂操作,需要告诉电脑这个指令表达的是什么。
mac有两种配置文件(linux中有第三种/ect/bashrc):
- / ect/profile(全局配置,不建议使用)
- ~/.bash_profile(用户级环境变量)
所以我们真正需要查看和修改的是第二个,~/.bash_profile。
3.4终端的指令代码
指令很多,但我们配置python主要用的是:打开配置文件>写入&更改环境变量>执行配置文件 的系列指令:
查看python路径
which python
打开配置文件
open ~/.bash_profile
插入环境变量
export PATH="/Users/guidongzhang/opt/anaconda3/bin:$PATH"
执行配置文件
source ~/.bash_profile
看不懂没关系,下面会详细讲配置环境变量的具体流程。
顺便说一下什么叫环境变量,这是百度百科的解释:
环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。
环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。
通俗来说:
你让电脑运行python,电脑搜索自己,可能会发现很多个python,所以需要提供python所在的路径,告诉电脑使用哪个文件夹下的python。你可以每次在终端进行python操作时都指定路径,也可以设置环境变量,相当于设置一个默认值,告诉电脑你口中的代号“python”究竟是哪个python。
Windows对与环境变量有专门的UI界面,而Mac是没有的(心累)。
4.python各版本的安装与切换
4.1官网版本
从python官网下载的python是比较“原汁原味”的。所以其所在的根目录是比较大的Library,具体路径为/Library/Frameworks/Python.framework/Versions/3.8
。
理论上这个python是不需要自己添加环境变量的,因为安装时就自动帮你添加上了。但是我们走一遍流程:
首先查看python版本:
我输入的是which python3
,因为Mac自带python2,电脑默认python
就是指的python2,但我们现在用的基本都是3 。所以井水不犯河水,干脆我们就叫python3
,pip安装也用pip3 install packages_name
,这一点是不用纠结的。
我的输出结果是homebrew版的python,说明这不是我想要的官网版,让我们一起修改它。
下一步我们打开bash_profile,就输入之前说的代码open ~/.bash_profile
:
会弹出这样一个记事本,可以看出来我这里已经一团乱麻了,但是什么都不用管,在最下方插入export PATH="/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}"
。注意这个PATH的最后一级是个bin文件,bin文件可以理解为一个程序的核心内容,基本上环境变量都是指向它。
就像这样:
再在终端中输入source ~/.bash_profile
,保存修改,再输入which python3
,输出的结果就是对应的官网路径了:
是不是非常简单?
之后介绍的Anaconda版本和Homebrew版本的设置也大同小异,区别就是他们的文件路径。
4.2 Anaconda和Homebrew版本
首先说一下这两个是什么东西。
这两个都是包和环境管理器,就像经销商一样,你从工厂直接购买产品往往会导致东西冗杂,经过了经销商,他们帮你打包,顺带给你个简单的说明书。
Anaconda大家应该比较熟悉,你只要下载它,就能顺带下载许多与机器学习相关的包。
Homebrew是一个针对苹果系统的文件管理器,用简单的指令即可安装、卸载、查看、更新软件。这两个都是自带python的,更改环境变量方法与前面一致。
它们插入的环境变量分别为:
Anaconda pythonexport PATH="/Users/guidongzhang/opt/anaconda3/bin:$PATH"
Homebrew pythonexport PATH="/opt/homebrew/Cellar/python@3.8/3.8.12_1/bin:$PATH""
关于环境变量千万不要简单的复制我的代码,还是像之前说的,要深入理解文件结构,对照我的路径,找到python在你自己电脑中的路径。
4.3 package的安装
一般指定完PATH后,在终端输入pip3 install package_name
,就能下载到对应python的package_site中,换句话说能在该python环境下自由使用那个package。
但对于Anaconda和Homebrew来说,他们又有自己独立的环境conda和brew。所以可以用conda install package_name
和brew install package_name
来下载安装包。除此之外,关于这两个环境,还有很多内部的操作方法,比如更换内部python版本,在此就不详述了。