在深度学习Python后,很可能需要在同一台电脑上安装不同Python版本的的运行环境,或者设置默认的python和pip运行版本,或者在安装比如mysql、jupyter notebook的时候,一般需要设置一些环境变量,本人在之前基本是按照教程一步一步执行,执行完毕之后,其实基本也就忘记了,这样导致可能换一台电脑或者换一个运行环境,就需要重新把之前的教程再一步一步执行,当时学习时,为了聚焦python本身,也没有过多了解设置中的基本原理,后面在深入学习后,觉得这块越来越有必要深入系统理解,本文主要介绍mac配置环境变量,以及与Python相关的常用环境变量设置和说明。
之前如果有用到Windows,设置环境变量是一个相对比较简单的事情,因为毕竟提供了操作入口,操作几遍也就熟悉了,但是针对Mac,如果之前没有接触过Linux系统,可能会感觉云里雾里,以下便先开始介绍Mac如何设置环境变量开始
一、Mac环境变量设置机制
1.1 环境变量作用说明
环境变量,顾名思义,即电脑当前运行环境的全局变量,分为系统级全局变量和用户级全局变量
- 系统级全局变量:指当前电脑所有用户均可使用并访问的环境变量,日常最为常见的是,一些常见的终端命令,基本某电脑所有用户均可在终端输入并运行
- 用户级全局变量:指只有当前登录用户账户内访问的环境变量,日常最为常见的是,比如在安装python时,一般会询问,是否安装给所有的用户,如果选择否,则只会将python命令安装到该用户下的指定文件夹内,也只有该用户可调用这些命令。
当然,环境变量,不仅仅只是指命令,还可以指其他变量值,可以将其当做编程中的全局变量来理解。
1.2 Mac与环境变量相关文件说明
Mac的环境变量设置,相较于Windows,会较为负复杂,主要是与环境变量相关的,可以配置和修改的文件较多,且每次修改后,还需要在终端执行对应命令才能生效,同时因为这些文件或文件夹在finder不能直接看到,只能通过终端打开,甚至还要用vim,所以对普通用户来说不太友好。
以下讲下相关文件,Mac系统开启后,会依次加载以下文件内的环境变量,流程示意:
文件路径 | 说明 | 用法 |
---|---|---|
/etc/profile | 文件,用来设置PATH环境变量,系统级,所有用户登录系统时均会运行并加载该文件内的环境变量 系统启动时,读取该文件,如果对该文件进行修改,则需要关机并重新登录后才会生效,一般不建议修改该文件 | 主要用来设置PATH环境变量,一般默认无需修改该文件,该文件默认会运行/usr/libexec/ 路径下的path_helper 命令,该命令会从/ etc/paths和/etc/paths.d加载在该文件或文件夹内sh文件设置的PATH环境变量
如希望生效,则必须重启电脑
|
/etc/paths | 文件,用来设置PATH环境变量,系统级,对所有用户生效 | 将希望添加到PATH环境变量内的路径逐行写入该文件内即可 如果希望对该文件的修改立即生效,则可以 使用 source/etc/profile 命令 |
/etc/paths.d | 文件夹,用来设置PATH环境变量,系统级,会对某系统内所有用户生效 | 1、在该文件目录下创建.sh文件(shell脚本文件) 2、在新建的sh文件内写入希望加入到PATH环境变量内的文件目录 3、执行 source /etc/profile 可立即生效,如不生效,则可重启bash shell终端 |
/etc/bashrc | 文件,用来设置系统级环境变量,不仅仅只是设置PATH环境变量,不过此处一般设置bash shell终端相关表现 bash shell启动时,不管是登录或不登录方式,均会读取该文件 | 1、在该文件内逐行设置希望添加的环境变量 2、执行 source /etc/bashrc 可立即生效,如不生效,则可重启bash shell终端 |
~/.bash_profile | 文件,用户级,用来设置用户级的环境变量,可以是PATH,也可以是自定义的环境变量 当用户登录时,会读取该文件,一般只会读取一次,建议在该文件内配置用户级的环境变量,包括PATH,并且显示执行source ~/.bashrc | 1、在该文件内按照指定语法,逐行添加环境变量即可 2、执行 source ~/.bash_profile 可立即生效 |
~/.bash_login | 文件,用户级,用来设置用户级环境变量,不仅仅只有PATH,该文件基本用不到 bash shell启动时,只有~/.bash_profile文件不存在时,才会读取该文件,如果存在,则不会读取 | 1、在该文件内按照指定语法,逐行添加环境变量即可 2、执行 source ~/.bash_login 可立即生效 |
~/.profile | 文件,用户级,设置用户级环境变量,该文件基本用不到 bash shell启动时,只有~/.bash_profile 和 ~/.profile 均读取不到或不存在时,才会读取该文件 | 1、在该文件内按照指定语法,逐行添加环境变量即可 2、执行 source ~/.profile 可立即生效 |
~/.bashrc | 文件,用户级,设置用户级环境变量,一般也可在该文件内设置环境变量 bash shell每次启动(打开新的窗口)时,均就会读取该文件,一般建议在该文件内配置用户级的环境变量,包括PATH | 1、在该文件内按照指定语法,逐行添加环境变量即可 2、执行 source ~/.bashrc 可立即生效 |
1.3 设置和查看环境变量相关方法和命令
命令或方法 | 说明 | 用法 |
---|---|---|
export | 设置环境变量 语法: export varname=varvalue,如果varname有多个值则 export varname=$varname:varvalue,即用:拼接 | 1、当在终端,直接输入export时,展示所有export设置的环境变量 2、也可以在以上可设置环境变量的文件内,设置对应环境变量 |
alias | 设置命令或环境变量的别名,相较于PATH,该命令可设置指定可执行命令的别名,最常用是设置简称 语法: alias name=value | 1、打开以上可设置环境变量的文件 2、输入一行 alias aliasname=<path> 3、比如,py=/usr/local/bin/python3.8,则以后就可以直接输入 py即可启动Python 4、如果在终端直接输入 alias ,则会展示出来当前系统中设置的所有别名 |
source | 执行某shell脚本命令,或让指定某文件重新加载和运行,一般配合使对环境变量的修改立即生效 | source ~/.bashrc |
env | 查看当前登录用户,可用的所有环境变量名及其对应的值 | 终端直接输入 env 即可 |
echo $var | 查看指定环境变量对应的值 | 终端直接输入比如 echo $PATH,可查看PATH环境变量的值 |
二、常用环境变量说明
2.1 PATH
2.1.1 PATH 环境变量作用
与Windows操作系统类似,Mac上的PATH环境变量,也是记录电脑搜索终端命令时的搜索路径,比如在终端输入 mysql,电脑需要知道在哪些文件夹路径下找寻对应匹配的可执行文件,如果找不到,则终端会提示 command not found,所以,如果希望在终端能使用某些命令,则需要将能搜索到该命令的文件夹路径,包含到PATH环境变量内。
2.1.2 设置PATH环境变量值
#其中<PATH 1>指的是目录路径,可加引号也可不加
export PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N>
2.1.3 PATH环境变量使用举例
#比如,如果希望在bash shell内直接键入某个命令,然后就可以运行指定程序,则可以将该命令对应可执行目录添加到PATH环境变量内
#以下以运行微信为例,将以下语句加到 ~/.bashrc内
export PATH=$PATH:<wechat_dir>
2.2 其他常用环境变量
环境变量 | 说明 | 设置或读取方法 |
---|---|---|
PYTHONPATH | 一般在该环境变量,设置import操作搜索路径,作为sys.path的一部分 一般建议在 ~/.bash_profile文件内设置该环境变量 | export download=~/downloads export PYTHONPATH=$PYTHONPATH:$download #或者 export PYTHONPATH=$PYTHONPATH:~/downloads |
PYTHONSTARTUP | Python启动后,先寻找PYTHONSTARTUP环境变量,然后执行此变量指定的文件中的代码,比如完成自定义初始化动作 一般建议在 ~/.bash_profile文件内设置该环境变量 | |
PYTHONCASEOK | 加入PYTHONCASEOK的环境变量, 就会使python导入模块的时候不区分大小写,一般不设置,如果需要可设置 一般建议在 ~/.bash_profile文件内设置该环境变量 | |
HOME | 当前登录用户主目录,也即 ~ 符号具体对应的目录路径,知道即可 | echo $HOME |
PWD | 当前工作路径目录,也即 . 符号具体对应的目录路径,知道即可 |
2.3 使用vim的方法
有些文件可能不能通过文稿直接打开并编辑,或者纵使可以打开,但修改需要权限,此时可以使用vim编辑工具,以下展示常用基础命令,主要便于辅助设置环境变量用,vim很强大,相关命令也很多,此处不再赘述
命令 | 说明 | 用法 |
---|---|---|
vim filepath | 使用vim编辑器打开某文件 | vim ~/downloads/test.sh |
i | 进入输入模式 | 打开文件后,键盘输入 i |
esc | 退出输入模式 | 进入输入模式后,按esc键 |
:q | 离开vim | |
:w | 保存 | 1、:w 保存修改 2、:w! 强制保存(如果文件是只读,会强制写入) |
:wq! | 强制保存并离开vim |