python】怎么用macos 设置全局的环境变量

2020-12-24 10:00发布

2条回答
我是大脸猫
2楼 · 2020-12-25 10:16

MacOS设置环境变量path的完全总结

 

 一、MacOS加载bash shell 环境变量的加载顺序

   mac 一般使用bash作为默认shell,Mac系统的环境变量,加载顺序为:

1、系统级别的

/etc/profile                                                   

/etc/bashrc 

/etc/paths 

 

2、用户级别的

~/.bash_profile  (mac用的)

~/.bash_login   

~/.profile   

~/.bashrc (这个linux用的)

 

 

二、各加载方式的分析和修改方法

1、/etc/profile

etc - environment config 环境设置, profile - 档案

(1)文件构成

执行vi /etc/profile之后呈现:

 

 
  1. # System-wide .profile for sh(1)

  2.  

  3. if [ -x /usr/libexec/path_helper ]; then

  4. eval `/usr/libexec/path_helper -s`

  5. fi

  6.  

  7. if [ "${BASH-no}" != "no" ]; then

  8. [ -r /etc/bashrc ] && . /etc/bashrc

  9. fi


(2)级别:系统级别,应该是不管哪个shell都调用这个profile,所以不建议用这个文件用于全局环境变量

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置

(3)修改方法:

 

如果没特殊说明,设置PATH的语法都为:

MacOS设置环境变量path的完全总结

 

 一、MacOS加载bash shell 环境变量的加载顺序

   mac 一般使用bash作为默认shell,Mac系统的环境变量,加载顺序为:

1、系统级别的

/etc/profile                                                   

/etc/bashrc 

/etc/paths 

 

2、用户级别的

~/.bash_profile  (mac用的)

~/.bash_login   

~/.profile   

~/.bashrc (这个linux用的)

 

 

二、各加载方式的分析和修改方法

1、/etc/profile

etc - environment config 环境设置, profile - 档案

(1)文件构成

执行vi /etc/profile之后呈现:

 

 
  1. # System-wide .profile for sh(1)

  2.  

  3. if [ -x /usr/libexec/path_helper ]; then

  4. eval `/usr/libexec/path_helper -s`

  5. fi

  6.  

  7. if [ "${BASH-no}" != "no" ]; then

  8. [ -r /etc/bashrc ] && . /etc/bashrc

  9. fi


(2)级别:系统级别,应该是不管哪个shell都调用这个profile,所以不建议用这个文件用于全局环境变量

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置

(3)修改方法:

 

如果没特殊说明,设置PATH的语法都为:

12#中间用冒号隔开     export PATH=$PATH::::------: 

 

 

 

2、/etc/bashrc - 建议修改,方法复杂(系统级别2、和下面的3只修改一个就可以了)

 

bashrc - bash run config,bash运行时候的设置

(1)文件构成

 

执行vi /etc/bashrc之后呈现:

 

 
  1. # System-wide .bashrc file for interactive bash(1) shells.

  2. if [ -z "$PS1" ]; then

  3. return

  4. fi

  5.  

  6. PS1='\h:\W \u\$ '

  7. # Make bash check its window size after a process completes

  8. shopt -s checkwinsize

  9.  

  10. [ -r "/etc/bashrc_$TERM_PROGRAM" ] && . "/etc/bashrc_$TERM_PROGRAM"

 

(2)级别:这个是bash启动时候必须加载的环境变量,做为全局环境变量设置是可以行的

/etc/bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。

 

(3)修改方法:同上/etc/profile

 

 

 

3、/etc/paths - 建议修改,方法简单

(1)文件构成

 

 

执行vi /etc/paths之后呈现:

 

 
  1. /usr/local/bin

  2. /usr/bin

  3. /bin

  4. /usr/sbin/sbin

 

 

(2)级别:实质上这就是个系统全局的路径,不建议做直接改动,具体改动的方法两个。

(3)修改方法:就是加载路径

 

 
  1. 1.创建一个文件:

  2. sudo touch /etc/paths.d/mysql

  3. 2.用 vim 打开这个文件(如果是以 open -t 的方式打开,则不允许编辑):

  4. sudo vim /etc/paths.d/mysql

  5. 3.编辑该文件,键入路径并保存(关闭该 Terminal 窗口并重新打开一个,就能使用 mysql 命令了)

  6. /usr/local/mysql/bin

 

或者

 

sudo -s 'echo "/usr/local/sbin/mypath" > /etc/paths.d/mypath'

 

 

4、~/.bash_profile 用户级别,建议修改这个文件。系统、用户级别只要选一个修改就够了

      ~/.bash_login

      ~/.profile

(1)文件构成:和/etc/profile一样,export PATH=$PATH:/xxx/bin:/bin

 

(2)级别:用户级别,这三个MacOS按照顺序查找,找到了一个,就不往下查找了。用户登录后执行一次

(3)修改方法:同/etc/profile
 

5、~/.bashrc 用户级别

(1)文件构成:和/etc/profile一样,export PATH=$PATH:/xxx/bin:/bin

 

(2)级别:用户级别。每次打开新的shell窗口,都会去读取一次。

(注:Linux 里面是 .bashrc 而 Mac 是 .bash_profile)

 

(3)修改方法:同/etc/profile

 

 

 


 

 

延 * 伸 * 阅 * 读

 

 
  1. 延伸阅读http://elf8848.iteye.com/blog/1582137

  2. Mac 启动加载文件位置(可设置环境变量)

  3. -------------------------------------------------------

  4. (1)首先要知道你使用的Mac OS X是什么样的Shell,使用命令

  5. echo $SHELL

  6. 如果输出的是:csh或者是tcsh,那么你用的就是C Shell。

  7. 如果输出的是:bash,sh,zsh,那么你的用的可能就是Bourne Shell的一个变种。

  8. Mac OS X 10.2之前默认的是C Shell。

  9. Mac OS X 10.3之后默认的是Bourne Shell。

  10. (2)如果是Bourne Shell。

  11. 那么你可以把你要添加的环境变量添加到你主目录下面的.profile或者.bash_profile,如果存在没有关系添加进去即可,如果没有生成一个。

  12.  

  13. Mac配置环境变量的地方

  14. 1./etc/profile (建议不修改这个文件 )

  15. 全局(公有)配置,不管是哪个用户,登录时都会读取该文件。

  16. 2./etc/bashrc (一般在这个文件中添加系统级环境变量)

  17. 全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件。

  18. 3.~/.bash_profile (一般在这个文件中添加用户级环境变量)

  19. 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!

 

参考文章一,《MAC 设置环境变量path的几种方法》,原文链接:http://www.flakor.cn/2014-09-14-714.html


 

 

 

2、/etc/bashrc - 建议修改,方法复杂(系统级别2、和下面的3只修改一个就可以了)

 

bashrc - bash run config,bash运行时候的设置

(1)文件构成

 

执行vi /etc/bashrc之后呈现:

 

 
  1. # System-wide .bashrc file for interactive bash(1) shells.

  2. if [ -z "$PS1" ]; then

  3. return

  4. fi

  5.  

  6. PS1='\h:\W \u\$ '

  7. # Make bash check its window size after a process completes

  8. shopt -s checkwinsize

  9.  

  10. [ -r "/etc/bashrc_$TERM_PROGRAM" ] && . "/etc/bashrc_$TERM_PROGRAM"

 

(2)级别:这个是bash启动时候必须加载的环境变量,做为全局环境变量设置是可以行的

/etc/bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。

 

(3)修改方法:同上/etc/profile

 

 

 

3、/etc/paths - 建议修改,方法简单

(1)文件构成

 

 

执行vi /etc/paths之后呈现:

 

 
  1. /usr/local/bin

  2. /usr/bin

  3. /bin

  4. /usr/sbin/sbin

 

 

(2)级别:实质上这就是个系统全局的路径,不建议做直接改动,具体改动的方法两个。

(3)修改方法:就是加载路径

 

 
  1. 1.创建一个文件:

  2. sudo touch /etc/paths.d/mysql

  3. 2.用 vim 打开这个文件(如果是以 open -t 的方式打开,则不允许编辑):

  4. sudo vim /etc/paths.d/mysql

  5. 3.编辑该文件,键入路径并保存(关闭该 Terminal 窗口并重新打开一个,就能使用 mysql 命令了)

  6. /usr/local/mysql/bin

 

或者

 

sudo -s 'echo "/usr/local/sbin/mypath" > /etc/paths.d/mypath'

 

 

4、~/.bash_profile 用户级别,建议修改这个文件。系统、用户级别只要选一个修改就够了

      ~/.bash_login

      ~/.profile

(1)文件构成:和/etc/profile一样,export PATH=$PATH:/xxx/bin:/bin

 

(2)级别:用户级别,这三个MacOS按照顺序查找,找到了一个,就不往下查找了。用户登录后执行一次

(3)修改方法:同/etc/profile
 

5、~/.bashrc 用户级别

(1)文件构成:和/etc/profile一样,export PATH=$PATH:/xxx/bin:/bin

 

(2)级别:用户级别。每次打开新的shell窗口,都会去读取一次。

(注:Linux 里面是 .bashrc 而 Mac 是 .bash_profile)

 

(3)修改方法:同/etc/profile

 

 

 


 

 

延 * 伸 * 阅 * 读

 

 
  1. 延伸阅读http://elf8848.iteye.com/blog/1582137

  2. Mac 启动加载文件位置(可设置环境变量)

  3. -------------------------------------------------------

  4. (1)首先要知道你使用的Mac OS X是什么样的Shell,使用命令

  5. echo $SHELL

  6. 如果输出的是:csh或者是tcsh,那么你用的就是C Shell。

  7. 如果输出的是:bash,sh,zsh,那么你的用的可能就是Bourne Shell的一个变种。

  8. Mac OS X 10.2之前默认的是C Shell。

  9. Mac OS X 10.3之后默认的是Bourne Shell。

  10. (2)如果是Bourne Shell。

  11. 那么你可以把你要添加的环境变量添加到你主目录下面的.profile或者.bash_profile,如果存在没有关系添加进去即可,如果没有生成一个。

  12.  

  13. Mac配置环境变量的地方

  14. 1./etc/profile (建议不修改这个文件 )

  15. 全局(公有)配置,不管是哪个用户,登录时都会读取该文件。

  16. 2./etc/bashrc (一般在这个文件中添加系统级环境变量)

  17. 全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件。

  18. 3.~/.bash_profile (一般在这个文件中添加用户级环境变量)

  19. 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!


卡卡
3楼 · 2021-01-05 08:47


在mac下设置环境变量,通常是在~/.bash_profile里配置,这个配置文件是只针对当前用户的,通常都够用,但是,我今天配置了一个开机启动的脚本,发现这个脚本的进程中,NDK_ROOT环境变量没有设置。原因就是这个脚本启动时,用户还没有登录,所以bash_profile没有执行。这样,就需要设置全局的环境变量,查了一下资料,方法如下:

编辑/etc/launchd.conf,如果不存在就新建一个

sudovim/etc/launchd.conf

添加:

setenvNDK_ROOT/Developer/android/android-ndk-r9b


保存退出,重启,再打开terminal检查环境变量

set


NDK_ROOT=/Developer/android/android-ndk-r9b


已经设置成功了




相关问题推荐

  • 回答 1

    可以试下在cmd命令行执行,编辑器中对turtle的支持度不是很好。

  • 回答 6

    人工智能是一门起步晚却发展快速的科学。20 世纪以来科学工作者们不断寻求着赋予机器人类智慧的方法。现代人工智能这一概念是从英国科学家图灵的寻求智能机发展而来,直到1937年图灵发表的论文《理想自动机》给人工智能下了严格的数学定义,现实世界中实际要...

  • 回答 7

    代理ip网址http://www.goubanjia.com/http://www.ip181.com/https://www.kuaidaili.com/python 环境安装requests库安装bs4库proxies设置代理服务器地址proxies = {'http':  'http://61.155.164.110:3128'}http://www.goub......

  • 回答 2

    要求:用户正确输入用户名和密码便成功登陆,分别有三次机会输入用户名和密码,超过3次便锁定分析:用两个while循环即可,代码如下:user_name = Brettpassword = 1314i = 0n = 0Is_exit = False  #进入循环标志while not Is_exit:User_name = input(please ...

  • 回答 4

    当你运行代码的时候,需要你指定闹钟的时间,然后闹钟就会在指定的时间想起来。电脑pytho加载time模块,获取此时此刻的时间:import timet = time.localtime()print(t)时间是以字典的形式出现的。从字典里面提取时间信息:now = time.strftime(%H %M, t).spli...

  • 回答 5

    在几千条数据中有正负数,筛选出同一供应商下正负数相加为零的数据,正负数相加有可能为一正一负相加为零,也有可能是一正多负,也有可能一负多正,总体是将可以所有正负数相加为零的数据标注颜色出来。excel论坛上说计算量太 ...可以用pandas来处理...

  • 回答 2
    已采纳

    import sqlite3p = sqlite3.connect(file:memDB1?mode=memory&cache=shared, uri=True)p.execute('CREATE TABLE tbTest (fld1, fld2)')p.execute(INSERT INTO tbTest VALUES ('fld1', 'fld2'...

  • 回答 13

    Java企业级解决方案较多且成熟,国内搜索网站上对于各种问题的解答较多,相比而言,Python成熟企业级解决方案没Java多,资料多以外文为主。国内web开发大环境一直以Java为主,从业者人口基数众多,小白学习Java无论是书籍还是视频资料一搜一大把,从业者技术...

  • 回答 27

    当然可以了,不只是可以处理表格,而且是非常高效的额处理表格,能大大减轻工作量学会使用Python处理表格的话之前接了一个国企的case,说让我们给出一个解决方案关于数据处理方面的,去了他们天津的公司,一个部门7个人,7个人的工作我看了一下,我和我的同事...

  • 回答 22

    1、兼职处理数据2、兼职查询资料3、兼职P图

  • 回答 26

       Python是一门编程语言。相比于其他编程语言, Python爬取网页文档的接口更简洁;Python的urlib2包提供了完整的访问网页文档的API ;并且python中有优秀的第三方包可以高效实现网页抓取,可用极短的代码完成网页的标签过滤功能。所以Python被很多人称为爬虫。...

  • 回答 17

    可以的,python语法简单。刚开始学习可以试一下

  • 回答 25

    这两个其实现在用的都很普遍,java可能更好用一些吧

  • 回答 19

    1.if 语句1)基本用法:if 要判断的条件:    条件成立的时候,要做的事情else:    条件不成立的时候,要做的事情 if和else语句以及各自的缩进部分都是一个完整的代码块示例:2)if ,elifif 要判断的条件:    条件成立的时候,要做的事情elif 条件2...

  • 回答 26

    首先,从应用领域来看,Python语言涉及范围广,应用路径宽。其中包括:  (1)Web和Internet开发  (2)科学计算和统计  (3)人工智能  (4)桌面界面开发  (5)软件开发  (6)后端开发  (7)网络爬虫...

没有解决我的问题,去提问