คุณอยู่ที่นี่เพราะใช้:
- Windows OS เวอร์ชัน 10+
- Python เวอร์ชัน 3.3+
- Anaconda3
และอยากแก้ไข PYTHONPATH แบบถาวร
TL;DR
- ไป
C:\Users\<your_username>\Anaconda3\Lib\site-packages - สร้างไฟล์
python37.pth - แก้ไขไฟล์ ใส่บรรทัดนี้
C:\\Users\\<your_username>\\my_module
เวอร์ชันยาว; ควรอ่าน
Prologue
ในกรณีส่วนใหญ่ แก้ PYTHONPATH จาก Settings GUI จะทำได้ Trick อธิบายดีในคำตอบ Stack Overflow นี้
ถ้าตั้งแต่แรกอยากแก้ Path แค่ Local คำตอบที่ช่วยได้นี้จะทำได้
Slightly Extended Item no. 1
ถ้าไม่มี C:\Users\<your_username>\Anaconda3\Lib\site-packages ให้ place C:\Users\<your_username> ด้วย Path ไป Anaconda3 ของคุณ
Slightly Extended Item no. 2
ถ้าใช้ Python 3.7 สร้างไฟล์ชื่อ python37.pth มิฉะนั้น สร้าง python<XX>.pth สำหรับ Python เวอร์ชันที่ใช้
- ไม่แน่ใจเวอร์ชัน?
ใต้C:\Users\<your_username>\Anaconda3\ ค้นหาไฟล์รูปแบบpython<XX>.dllบ่งบอก Version Number สำหรับตั้งชื่อ .pth File - Windows รีบรบกวน ไม่ให้สร้างไฟล์นามสกุล
.pth?
มีไฟล์แบบนี้ในC:\Users\<your_username>\Anaconda3\Lib\site-packages Folder Copy หนึ่งมาแก้ Prefix - บางที่บอกต้องสร้าง
._pthแทน.pth?._pthจะ แทนที่ Path เดิมทั้งหมด ในขณะที่.pthจะ เพิ่ม เนื้อหาเข้า Path ที่มีอยู่ ข้อมูลเพิ่มเติมที่นี่
Slightly Extended Item no. 3
สมมติ SuperCoolClass ที่อยาก Import อยู่ที่ C:\Users\<your_username>\my_project_folder\my_awesome_file.py
เปิด python<XX>.pth ที่เพิ่งสร้าง ด้วย Text Editor ที่ชอบ (อย่าบอกว่าเป็น Vim) ใส่หนึ่ง line:C:\\Users\\<your_username>\\my_project_folder
ใช่ ต้องมี Double Slashes \\ น่ารำคาญ
ไม่ ใช้ Quotes "" ไม่ได้
แค่นี้
ตอนนี้ Import จากไหนได้ ไปเลย คนปกติ:from my_awesome_file import SuperCoolClass
Epilogue
ไม่มีอะไรสำคัญเพิ่ม
แค่หวัง 2 ชม. Frustration + 1 ชม. เขียนโพสต์นี้ ประหยัดเวลาคุณ
Peace out.