目录

  • 一、系统环境变量
  • 1.查看系统环境变量
  • 2.设置系统环境变量
  • 1)设置临时系统环境变量
  • 2)设置永久环境变量
  • 二、PYTHONPATH
  • 1.查看 PYTHONPATH
  • 2.设置PYTHONPATH
  • 1)设置临时PYTHONPATH
  • 3)设置永久PYTHONPATH
  • 三、sys.path
  • 四、关于环境变量的其他问题


一、系统环境变量

1.查看系统环境变量

1.env查询显示所有的环境变量

env是一个外部命令,程序文件/bin/env,用于列出所有环境变量及其赋值。

2.echo显示文字,打印文字

例如:显示环境变量的值HOME

echo $HOME

3.set显示本地变量,显示当前shell的变量,包括当前用户的变量

2.设置系统环境变量

1)设置临时系统环境变量

  • export:设置环境变量

例如:设置一个新的环境变量WELCOME

export WELCOME="Hello!"
export $WELCOME
Hello!

单独使用时和 env一样,列出所有环境变量

2)设置永久环境变量

  • 修改profile文件
gedit /root/.bashrc

加入

export PATH="$PATH:/xx/xx/

当权限不足时,注意使用sudo 命令

  • 修改.bashrc文件
gedit  /etc/profile

加入

export PATH="$PATH:/xx/xx/

“PATH=$ PATH:路径1:路径2:…:路径n”,意思是可执行文件的路径包括原先设定的路径,也包括从“路径1”到“路径n”的所有路径。当用户输入一个一串字符并按回车后,shell会依次在这些路径里找对应的可执行文件并交给系统核心执行。那个“$ PATH”表示原先设定的路径仍然有效,注意不要漏掉。某些软件可能还有“PATH”以外类型的环境变量需要添加,但方法与此相同,并且也需要注意“$”。

二、PYTHONPATH

linux python导入环境变量 python获取linux环境变量_linux python导入环境变量


关于PYTHONPATH的官方文档说明:

Augment the default search path for module files. The format is the same as the shell’s PATH: one or more directory pathnames separated by os.pathsep (e.g. colons on Unix or semicolons on Windows). Non-existent directories are silently ignored.

官网链接:https://docs.python.org/2/using/cmdline.html#envvar-PYTHONPATH

1.查看 PYTHONPATH

python
import sys
sys.path

python path的作用:Python搜索路径,默认我们import的模块都会从PYTHONPATH里面寻找。

如果我们使用 PYTHONPATH 中的 modules,那么在运行 python 前,就要把 path 加到 os.environ[‘PYTHONPATH’],在运行 python 后再加,那些模块不能直接被导入

python对import的搜索顺序是
1、先扫描当前所在目录
2、找$PYTHONPATH

3、如果没有,linux下会找默认路径 /usr/local/lib/python/ 所以你没有配置,一些python系统自己的还是能找到的

2.设置PYTHONPATH

1)设置临时PYTHONPATH

在命令窗口中添加路径

export PYTHONPATH=$PYTHONPATH:/xxxx/xxxx

例如,我们在使用facenet-master时,需要将src的路径到环境PYTHONPATH中
在定位到facenet-master文件夹后,

export PYTHONPATH=$(pwd)/src

pwd :输出当前目录的命令
随即进行查看

linux python导入环境变量 python获取linux环境变量_linux python导入环境变量_02


我们看到在第一个路径已经出现了刚才添加的临时变量,可以供我们运行src下的脚本

当我们另外打开终端,进行对比

linux python导入环境变量 python获取linux环境变量_搜索_03

充分说明了利用 export 添加的只是临时变量,并放在了最前面

3)设置永久PYTHONPATH

  • 在python 中添加

使用 sys

import sys
sys.path
sys.path.append('/xx/xx')
  • 建立xx_model.pth文件
    例如上例,我们打开
    在anaconda安装目录下的site-packages文件夹下建立一个facenet_model.pth文件

linux python导入环境变量 python获取linux环境变量_python_04

然后在终端查看

linux python导入环境变量 python获取linux环境变量_搜索_05


这里我们同时打开两个环境的终端,看到只在添加facenet_model.pth文件

的环境下显示变量,并追加到了最后

我们看到在查看和添加时,我们都使用了sys,那么什么是sys呢?

三、sys.path

官方文档说明:A list of strings that specifies the search path for modules. Initialized from the environment variable PYTHONPATH, plus an installation-dependent default.

sys.path 初始化的时候有两部分:os.environ[‘PYTHONPATH’] 和 默认的安装依赖的一些路径(例如 python 安装的根目录 和 pythonxx.zip)

sys.path 的作用:

  1. 与 PYTHONPATH 不同,sys.path 可以在 python 运行后添加我们的 module path,然后直接
    import,应该说python只搜索 sys.path 中的 modules,不搜索
  2. 我们可以通过 os.environ['PYTHONPATH'] 来传递我们的 module path
  3. 我们可以给 python 添加自定义的 module path,让 python 在运行的时候自动加到 sys.path 中,方法是 在 /Lib/site-packages/ 中添加 *.pth 文件,在文件里面加上 module
    path

因为sys.path是一个列表,存储了系统的路径值,如果需要增加一个路径,直接使用列表的append方法,添加一个路径即可,参考官方文档

linux python导入环境变量 python获取linux环境变量_环境变量_06

四、关于环境变量的其他问题

参考博客: https://zhidao.baidu.com/question/183680044181428844.html