เพิ่มเส้นทางไฟล์ไปยัง sys.path ใน Python อย่างถาวร


104

ผมมีไฟล์ที่เรียกว่า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 ได้อย่างไร


3
ทำให้รหัสของคุณเป็นแพ็คเกจที่เหมาะสมทำให้ง่าย _ ติดตั้งได้และมีความสุขไปตลอดชีวิต (แทนที่จะซ่อมแซม) นอกเหนือจากนั้น: เอกสารทุกฉบับจะแจ้งให้คุณทราบอย่างชัดเจนว่าsys.path.append()ยอมรับไดเร็กทอรีที่มีไฟล์และไม่ใช่เส้นทางเดียวไปยังไฟล์
Andreas Jung



PYTHONPATHอย่าสับสนเส้นทางของระบบด้วย
Burhan Khalid

คำตอบ:


100

มีไม่กี่วิธี วิธีหนึ่งที่ง่ายที่สุดคือการสร้างmy-paths.pthไฟล์ (ตามที่อธิบายไว้ที่นี่ ) นี่เป็นเพียงไฟล์ที่มีนามสกุล.pthที่คุณใส่ลงในsite-packagesไดเร็กทอรีระบบของคุณ ในแต่ละบรรทัดของไฟล์คุณใส่ชื่อไดเร็กทอรีหนึ่งชื่อดังนั้นคุณสามารถใส่บรรทัดลงในนั้นด้วย/path/to/the/และจะเพิ่มไดเร็กทอรีนั้นไปยังพา ธ

นอกจากนี้คุณยังสามารถใช้ตัวแปรสภาพแวดล้อม PYTHONPATH ซึ่งเป็นเหมือนตัวแปรระบบเส้นทาง sys.pathแต่มีไดเรกทอรีที่จะถูกเพิ่มเข้าไป ดูเอกสาร

โปรดทราบว่าไม่ว่าคุณจะทำอะไรsys.pathมีไดเร็กทอรีไม่ใช่ไฟล์ คุณไม่สามารถ "เพิ่มไฟล์ลงในsys.path" ได้ คุณมักจะเพิ่มไดเร็กทอรีจากนั้นคุณสามารถนำเข้าไฟล์ได้


1
โอเคขอบคุณมากฉันได้เพิ่มไดเร็กทอรีของฉันซึ่งประกอบด้วยไฟล์และใช้งานได้เมื่อฉันนำเข้าไฟล์จากที่อื่น bu ปัญหาเมื่อฉันออกจาก ipython และเข้ามาตรวจสอบเส้นทางของฉันอีกครั้งมันไม่ปรากฏ ฉันไม่ต้องการทำทุกครั้งเมื่อฉันป้อนรหัสฉันต้องการเพิ่มเส้นทางไดเรกทอรีไปยัง sys.path อย่างถาวรวิธีการทำ
Shiva Krishna Bavandla

@Kouripm: ความคิดเห็นของคุณบ่งบอกว่าคุณไม่ได้ทำตามข้อเสนอแนะของฉันหรือคำแนะนำในโพสต์ที่ซ้ำกันที่เชื่อมโยงด้านบน
BrenBarn

1
siteแพคเกจที่สมบูรณ์แบบ
Zeinab Abbasimazar

9
แก้ไขปัญหาของฉันด้วยsys.path.append('C:\\python34\\lib\\site-packages')ขอบคุณ!
tylerlindell

สำหรับลูกหลาน: .pthไฟล์คือสิ่งที่เอกสารของโมดูลไซต์เรียกว่าไฟล์path configuration file. หมายเหตุเกี่ยวกับไฟล์กำหนดค่าเส้นทาง:no check is made that the item refers to a directory rather than a file. No item is added to sys.path more than once. Blank lines and lines beginning with # are skipped. Lines starting with import (followed by space or tab) are executed.
มินห์ทราน

1

วิธีนี้ใช้ได้ผลสำหรับฉัน:

เพิ่มเส้นทางที่คุณต้องการ:

export PYTHONPATH=$PYTHONPATH:/path/you/want/to/add

การตรวจสอบ: คุณสามารถเรียกใช้ cmd 'ส่งออก' และตรวจสอบผลลัพธ์หรือคุณสามารถตรวจสอบได้โดยใช้ cmd นี้:

python -c "import sys; print(sys.path)"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.