python:PATH、PYTHONPATH 和 sys.path 的区别

python:PATH、PYTHONPATH 和 sys.path 的区别

PATH

在PATH中的 python module 不能被 import,在 PATH 中的一些命令,例如 *.exe,能够直接在cmd中运行,而不用明确的路径,咱们在给 python 安装一些 packages 的时候,有一些 Scripts 被安装到 /Scripts 文件夹中,若是 /Scripts 文件夹路径不在 PATH 中,会有提示html

PYTHONPATH

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

sys.path

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

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

sys.path 的做用:htm

  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,参考连接:https://medium.com/@arnaud.bertrand/modifying-python-s-search-path-with-pth-files-2a41a4143574
相关文章
相关标签/搜索