目录
- 一、系统环境变量
- 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
关于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、找$PYTHONPATH3、如果没有,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 :输出当前目录的命令
随即进行查看
我们看到在第一个路径已经出现了刚才添加的临时变量,可以供我们运行src
下的脚本
当我们另外打开终端,进行对比
充分说明了利用 export
添加的只是临时变量,并放在了最前面
3)设置永久PYTHONPATH
- 在python 中添加
使用 sys
import sys
sys.path
sys.path.append('/xx/xx')
- 建立xx_model.pth文件
例如上例,我们打开
在anaconda安装目录下的site-packages文件夹下建立一个facenet_model.pth文件
然后在终端查看
这里我们同时打开两个环境的终端,看到只在添加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 的作用:
- 与 PYTHONPATH 不同,sys.path 可以在 python 运行后添加我们的 module path,然后直接
import,应该说python只搜索 sys.path 中的 modules,不搜索- 我们可以通过
os.environ['PYTHONPATH']
来传递我们的 module path- 我们可以给 python 添加自定义的 module path,让 python 在运行的时候自动加到 sys.path 中,方法是 在
/Lib/site-packages/
中添加 *.pth 文件,在文件里面加上 module
path
因为sys.path是一个列表,存储了系统的路径值,如果需要增加一个路径,直接使用列表的append方法,添加一个路径即可,参考官方文档
四、关于环境变量的其他问题
参考博客: https://zhidao.baidu.com/question/183680044181428844.html