烈日中的七月,我坐在电脑前,Python倒是安完了,可是我还得顾到一边pip安装。get-pip.py运行完毕后,那个烦人的warning再度出现:

WARNING: The scripts pip, pip3 and pip3.8 are installed in '/Users/alex080318/Library/Python/3.8/bin' which is not on PATH.   Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

没错,环境变量又出来惹事了。再瞅瞅网上五花八门的文章,讲解的环境变量添加方法都针对某个软件包(比如git或maven),几乎没有一篇文章讲清楚环境变量(PATH)到底是个啥,以及如何通用地添加环境变量。于是,它来了——

PATH是个啥?

我不想花费太多笔墨,或者搬上专业名词讲解什么是PATH,其实PATH真的很好解释。

在我们这个pip例子中,Python 3.8被安装到了/Users/TLH0rse/Library/Python/3.8/bin,pip就在这个目录下。但问题是,这个pip所在的Python是我自己用python.org上的pkg安装的,并不是系统自带Python,于是你在终端里按下pip时,终端不会理你,因为它在系统目录里搜索不到pip这个程序,我们只能把整个路径都敲出来。

zsh: command not found: pip # 敲了个寂寞

git、maven或pip这样的程序文件所隐藏的路径很深,每次都敲一遍根本不可能。为了解放我们的双手,系统研发出来了一种机制:PATH。

PATH 机制

终端其实就是shell语言的一个交互式编译器,你可以在里面定义变量,使用shell的for循环,亦或用if判断条件。当你输入命令并回车后,shell会先检查一个特定名称的shell变量,叫做PATH,看看这个变量里面有没有你的命令的路径。如果没有才会去系统目录下检索程序。

添加环境变量的原理是:你在用户根目录下创建一个名为.xxxrc的文件,其中xxx为你的shell的名称,比如我的是zsh,文件名就是.zshrc,如果是bash,那就是.bashrc。在你打开一个shell(比如zsh)时,相对应的rc文件(.zshrc)就会运行,然后再打开shell。如果你在这个文件中对PATH进行了赋值,那么你的shell在运行期间就可以使用PATH中自定义的环境变量。

注意一点:.bashrc.zshrc.bash_profile.zprofile这样的profile文件不一样。

设置PATH

在用户根目录(是用户根目录,不是/)新建一个.xxxrc文件,然后输入:

export PY_HOME=/Users/tlhorse/Library/Python/3.8/bin
export GIT_HOME=/path/to/git/bin
export MAVEN_HOME=/path/to/maven/home
export PATH=$PATH:$PY_HOME:$GIT_HOME:$MAVEN_HOME

两句export分别给两个变量赋值。设置PATH时,先定义一些xxx_HOME,然后在放到最后一行PATH,每个变量用:隔开,最前面别忘加一个$PATH,否则shell可能会检索不到系统命令,弄得你一脸懵逼。

重启shell,或者source ./.xxxrc,输入pip,成功!

END

环境变量(PATH)的那些事相关推荐

  1. 在Java程序设计中,设置环境变量path和classpath的作用分别是什么?

    在Java程序设计中,设置环境变量path和classpath的作用分别是什么? asd79308 10级  分类: 编程开发  被浏览344次  2013.07.22 额,你这问题问的有够" ...

  2. 系统的环境变量path的作用是什么

    系统的环境变量path的作用是什么,本来不知道什么叫做环境变量的.但是自从学了Java之后就对path有点了解.然后设置了环境变量path,当然 也就知道按照网上的大侠给的方法照搬上去而已,根本不了解 ...

  3. 环境变量PATH与cp 、mv命令

    环境变量PATH cp命令 mv命令 cat命令 move命令 less命令 head命令 tail命令 转载于:https://blog.51cto.com/13515599/2051792

  4. 环境变量path误删解决办法

    2019独角兽企业重金招聘Python工程师标准>>> 每台计算机安装程序不同,环境变量path会有不同,若误删了环境变量path,可以如下完美解决.   Win+R 输入reged ...

  5. 环境变量PATH 、mv 命令 、cp 命令和 查看文档相关的命令

    2019独角兽企业重金招聘Python工程师标准>>> 环境变量PATH which 命令 which+命令名 //查找某个命令的绝对路径 如:查找rm命令的绝对路径 which的查 ...

  6. Windows 中的环境变量 Path 与 XXXX_HOME 的区别

    Windows 中的环境变量 Path 与 XXXX_HOME 的区别 XXXX_HOME Path   开发经常需要配置 Windows 中的环境变量,其中经常需要配置的环境变量有 Path.XXX ...

  7. Ubuntu中设置环境变量PATH

    Ubuntu中设置环境变量PATH二种方法 时间:2008-11-06 00:00 来源:网管之家bitsCN.com 字体:[大 中 小] 目前在Ubuntu中有二种设置PATH环境变量的方法. 为 ...

  8. 环境变量PATH、mv命令、cp命令、文档查看命令(cat、more、less、head、tail)

    环境变量PATH 就是指定默认路径 使用任何命令都需要进入/bin 目录下才能使用,而有了path 环境变量 我们可以赋予 变量值是/root/bin/ 那么我们就能在其他目录下调用命令的原因 PAT ...

  9. Linux 环境变量 $PATH

    我们知道查阅文件属性的指令 ls 完整文件名为:/bin/ls(这是绝对路径),那为什么可以在任何地方执行/bin/ls 这个指令呢?  为什么在任何目录下输入 ls 就一定可以显示出一些讯息而不会说 ...

  10. linux path减少,Linux的环境变量PATH中所带来的问题及解决方法

    Linux的环境变量PATH中所带来的问题及解决方法 发布时间:2006-01-07 10:08:27来源:红联作者:yo 本文主要讲述"."在LINUX的环境变量PATH中所带来 ...

最新文章

  1. Python的故事_two
  2. vue拖动改变模板_可视化拖拽 UI 布局之拖拽篇
  3. Creo二次开发--内存清理函数
  4. springmvc atomikos mysql数据源_springboot+atomikos+多数据源管理事务(mysql 8.0)
  5. 西北冬日的校园很静谧,却不失韵味,因为有我们美好的青春!
  6. Azure 和 Linux
  7. 信息学奥赛一本通 1011:甲流疫情死亡率 | OpenJudge NOI 1.3 06
  8. html在线时间24小时代码,每24小时弹一次的HTML代码
  9. matlab中round函数_Excel中round函数的使用方法
  10. 两个员工,一个做事认真但效率低,一个迟到早退但效率高,只能留一个我该留哪个?
  11. 利用模版元编程将传统冒泡排序性能提升两倍以上
  12. LOTO 示波器 两种电流探头的对比实测
  13. 史上最全软件测试工程师常见的面试题总结【杭州多测师】【面试题】【杭州多测师_王sir】...
  14. FinClip | 2022 年 10月产品大事记
  15. WIN10共享打印机连接出现0x0000011b错误代码无法共享打印
  16. 区块链数据共享论文阅读
  17. 招银网络:笔试题(20190906)
  18. 你们期待已久的微信功能,终于要来了
  19. 曲鸟全栈UI自动化教学(五):Selenium的键盘鼠标事件详解
  20. 规范IT监理的主旋律

热门文章

  1. JAVA简单项目购物系统的整个开发过程详解(内含源码和注释)
  2. 线程池满Thread pool exhausted排查和解决
  3. rk板子linux系统安装rga,drm,mpp
  4. APS生产计划排产在装备制造业的应用
  5. Java 反射机制:(三)类的加载
  6. 论文阅读 | Combating Adversarial Misspellings with Robust Word Recognition
  7. BC #38 / HDU5208 Where is Bob · 数位dp
  8. CSMA/CD总线以太网和交换式以太网
  9. Android 高德地图Marker和Marker点击事件处理
  10. 梦幻西游手游经验任务链计算机,梦幻西游手游任务链技巧攻略详解