python:PATH、PYTHONPATH 和 sys.path 的區別


python:PATH、PYTHONPATH 和 sys.path 的區別

PATH

在PATH中的 python module 不能被 import,在 PATH 中的一些命令,例如 *.exe,可以直接在cmd中運行,而不用明確的路徑,我們在給 python 安裝一些 packages 的時候,有一些 Scripts 被安裝到 /Scripts 文件夾中,如果 /Scripts 文件夾路徑不在 PATH 中,會有提示

PYTHONPATH

如果我們使用 PYTHONPATH 中的 modules,那么在運行 python 前,就要把 path 加到 os.environ['PYTHONPATH'],在運行 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.

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,參考鏈接:https://medium.com/@arnaud.bertrand/modifying-python-s-search-path-with-pth-files-2a41a4143574


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM