PYTHONPATH เป็นตัวแปรสภาพแวดล้อมที่มีค่าเป็นรายการของไดเรกทอรี เมื่อตั้งค่าแล้วมันถูกใช้โดย Python เพื่อค้นหาโมดูลที่อิมพอร์ตพร้อมกับ std อื่น และไดเรกทอรีห้องสมุดบุคคลที่สามที่อยู่ในรายการ "sys.path" ของ Python
ในฐานะที่เป็นตัวแปรสภาพแวดล้อมอื่น ๆ ที่คุณสามารถส่งออกไปในเปลือกหรือ ~ / .bashrc ดูที่นี่ คุณสามารถสืบค้น os.environ ['PYTHONPATH'] สำหรับค่าใน Python ดังแสดงด้านล่าง:
$ python3 -c "import os, sys; print(os.environ['PYTHONPATH']); print(sys.path) if 'PYTHONPATH' in sorted(os.environ) else print('PYTHONPATH is not defined')"
ถ้านิยามไว้ใน shell เป็น
$ export PYTHONPATH=$HOME/Documents/DjangoTutorial/mysite
ผลลัพธ์ =>
/home/Documents/DjangoTutorial/mysite
['', '/home/Documents/DjangoTutorial/mysite', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages']
ผลอื่น =>
PYTHONPATH is not defined
หากต้องการตั้งค่า PYTHONPATH เป็นหลายเส้นทางดูที่นี่ที่นี่
โปรดทราบว่าสามารถเพิ่มหรือลบพา ธ การค้นหาผ่าน sys.path.insert (), del หรือ remove () ณ เวลาทำงาน แต่ไม่ผ่าน os.environ [] ตัวอย่าง:
>>> os.environ['PYTHONPATH']="$HOME/Documents/DjangoTutorial/mysite"
>>> 'PYTHONPATH' in sorted(os.environ)
True
>>> sys.path // but Not there
['', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages']
>>> sys.path.insert(0,os.environ['PYTHONPATH'])
>>> sys.path // It's there
['$HOME/Documents/DjangoTutorial/mysite', '', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages']
>>>
โดยสรุป PYTHONPATH เป็นวิธีหนึ่งในการระบุ Python search path (s) สำหรับโมดูลที่อิมพอร์ตใน sys.path คุณยังสามารถใช้การดำเนินการรายการกับ sys.path โดยตรงโดยไม่ต้องใช้ PYTHONPATH
PYTHONPATH
เชื่อถือ ใช้sys.path
สำหรับการที่