Sunting: berdasarkan komentar Ulf Rompe, penting untuk Anda menggunakan "1" daripada "0" , jika tidak, Anda akan merusak sys.path .
Saya telah melakukan python untuk beberapa waktu sekarang (lebih dari satu tahun), dan saya selalu bingung mengapa orang merekomendasikan Anda menggunakan sys.path.append()
bukan sys.path.insert()
. Biar saya tunjukkan.
Katakanlah saya sedang mengerjakan modul bernama PyWorkbooks (yang diinstal di komputer saya), tetapi saya secara bersamaan mengerjakan modul yang berbeda (katakanlah PyJob) yang menggabungkan PyWorkbooks. Saat saya mengerjakan PyJob, saya menemukan kesalahan di PyWorkbooks yang sedang saya koreksi, jadi saya ingin mengimpor versi pengembangan.
Ada beberapa cara untuk mengerjakan keduanya (saya bisa meletakkan proyek PyWorkbooks saya di dalam PyJob, misalnya), tetapi terkadang saya masih perlu bermain-main dengan jalurnya. Namun, saya tidak bisa begitu saja melakukan sys.path.append()
ke folder tempat PyWorkbooks berada . Mengapa? Karena python akan menemukan PyWorkbooks saya yang terinstal terlebih dahulu!
Inilah mengapa Anda harus melakukan sys.path.insert (1, path_to_dev_pyworkbooks)
Singkatnya:
sys.path.append(path_to_dev_pyworkbooks)
import PyWorkbooks # does NOT import dev pyworkbooks, imports installed one
atau:
sys.path.insert(1, path_to_dev_pyworkbooks) # based on comments you should use **1 not 0**
import PyWorkbooks # imports correct file
Hal ini telah menyebabkan beberapa hangup bagi saya di masa lalu, dan saya akan sangat menyukainya jika kami (sebagai komunitas) mulai merekomendasikan sys.path.insert(1, path)
, seolah-olah Anda memasukkan jalur secara manual, menurut saya aman untuk mengatakan bahwa itu adalah jalur yang Anda inginkan menggunakan!
Atau apakah saya memiliki sesuatu yang salah? Ini adalah pertanyaan yang terkadang mengganggu saya dan saya menginginkannya di tempat terbuka!
sys.path.insert(1, dev_folder)
tetapi masih belum menemukan modul dev, dan hanya menggunakan modul yang diinstal. Bagaimana cara mengatasinya?