คำถามติดแท็ก sys.path

2
เพิ่มเส้นทางไฟล์ไปยัง sys.path ใน Python อย่างถาวร
ผมมีไฟล์ที่เรียกว่าexample_file.pyซึ่งผมอยากจะใช้จากไฟล์อื่น ๆ อีกมากมายดังนั้นผมจึงตัดสินใจที่จะเพิ่มexample_file.pyการsys.pathและนำเข้าไฟล์นี้ในแฟ้มอื่นเพื่อใช้ไฟล์ ในการทำเช่นนั้นฉันเรียกใช้สิ่งต่อไปนี้ใน IPython import sys sys.path sys.path.append('/path/to/the/example_file.py') print(sys.path) ฉันเห็นเส้นทางที่เพิ่งเพิ่มและเมื่อฉันพยายามนำเข้าไฟล์นี้จากเส้นทางไดเรกทอรีอื่นเช่นนี้: import example_file มันใช้งานได้ดี แต่เมื่อฉันออกจาก IPython ให้ป้อนอีกครั้งและตรวจสอบsys.pathฉันเห็นว่าเส้นทางที่ฉันเพิ่มนั้นไม่มีอยู่ดังนั้นฉันจะเพิ่มเส้นทางไปยัง sys.path อย่างถาวรใน Python ได้อย่างไร
104 python  sys.path 

6
PYTHONPATH เทียบกับ sys.path
นักพัฒนารายอื่นและฉันไม่เห็นด้วยว่าควรใช้ PYTHONPATH หรือ sys.path เพื่อให้ Python ค้นหาแพ็คเกจ Python ในไดเร็กทอรีผู้ใช้ (เช่นการพัฒนา) เรามีโครงการ Python ที่มีโครงสร้างไดเรกทอรีทั่วไป: Project setup.py package __init__.py lib.py script.py ใน script.py import package.libเราต้องทำ เมื่อแพคเกจที่ติดตั้งในเว็บไซต์แพคเกจ script.py package.libสามารถค้นหา อย่างไรก็ตามเมื่อทำงานจากไดเร็กทอรีผู้ใช้จำเป็นต้องทำอย่างอื่น วิธีแก้ปัญหาของฉันคือตั้งค่า PYTHONPATH ของฉันให้รวม "~ / Project" นักพัฒนารายอื่นต้องการใส่โค้ดบรรทัดนี้ไว้ที่ส่วนต้นของ script.py: sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) เพื่อให้ Python สามารถค้นหาสำเนาภายในเครื่องของpackage.lib. ฉันคิดว่านี่เป็นความคิดที่ไม่ดีเนื่องจากบรรทัดนี้มีประโยชน์สำหรับนักพัฒนาหรือผู้ที่ทำงานจากสำเนาในเครื่องเท่านั้น แต่ฉันไม่สามารถให้เหตุผลที่ดีได้ว่าทำไมจึงเป็นความคิดที่ไม่ดี เราควรใช้ PYTOHNPATH, sys.path หรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.