Menambahkan jalur file ke sys.path secara permanen dengan Python

99

Aku punya file bernama example_file.py, yang saya ingin menggunakan dari berbagai file lainnya, jadi saya memutuskan untuk menambahkan example_file.pyke sys.pathdan mengimpor file ini di file lain untuk menggunakan file. Untuk melakukannya, saya menjalankan perintah berikut di IPython.

import sys
sys.path
sys.path.append('/path/to/the/example_file.py')
print(sys.path)

Saya dapat melihat jalur yang baru saja saya tambahkan, dan ketika saya mencoba mengimpor file ini dari jalur direktori lain seperti ini:

import example_file

itu berfungsi dengan baik, tetapi setelah saya keluar dari IPython, memasukkannya lagi, dan memeriksa sys.path, saya melihat bahwa jalur yang saya tambahkan tidak ada, jadi bagaimana cara saya menambahkan jalur ke sys.path secara permanen dengan Python?

Shiva Krishna Bavandla
sumber
3
Jadikan kode Anda sebagai paket yang tepat, buatlah menjadi easy_installable dan berbahagialah selama sisa hidup Anda (alih-alih mengutak-atik). Selain itu: setiap dokumentasi memberitahu Anda dengan JELAS yang sys.path.append()menerima direktori yang berisi file DAN BUKAN JALUR TUNGGAL KE A FILE.
Andreas Jung
kemungkinan duplikat Menambahkan folder ke jalur Python secara permanen
DhruvPathak
Jangan bingung dengan jalur sistem PYTHONPATH.
Burhan Khalid

Jawaban:

95

Ada beberapa cara. Salah satu cara paling sederhana adalah membuat my-paths.pthfile (seperti yang dijelaskan di sini ). Ini hanyalah sebuah file dengan ekstensi .pthyang Anda masukkan ke dalam site-packagesdirektori sistem Anda . Pada setiap baris file Anda meletakkan satu nama direktori, sehingga Anda dapat meletakkan baris di sana /path/to/the/dan itu akan menambahkan direktori itu ke jalur.

Anda juga dapat menggunakan variabel lingkungan PYTHONPATH, yang seperti variabel PATH sistem tetapi berisi direktori yang akan ditambahkan sys.path. Lihat dokumentasinya .

Perhatikan bahwa apa pun yang Anda lakukan, sys.pathberisi direktori, bukan file. Anda tidak dapat "menambahkan file ke sys.path". Anda selalu menambahkan direktorinya dan kemudian Anda dapat mengimpor file.

BrenBarn
sumber
1
ok terima kasih tidak apa-apa saya telah menambahkan direktori saya yang terdiri dari file dan berfungsi ketika saya mengimpor file dari lokasi lain, tetapi masalah ketika saya keluar dari ipython dan lagi-lagi masuk untuk memeriksa jalur saya, itu tidak muncul, saya tidak ingin melakukannya setiap kali saya memasukkan kode, saya ingin menambahkan jalur direktori ke sys.path secara permanen, bagaimana melakukan ini
Shiva Krishna Bavandla
@Kouripm: Komentar Anda menunjukkan bahwa Anda tidak benar-benar mengikuti saran saya, atau saran dalam postingan duplikat yang ditautkan di atas.
BrenBarn
1
The sitepaket sempurna.
Zeinab Abbasimazar
8
perbaiki masalah saya dengan sys.path.append('C:\\python34\\lib\\site-packages')terima kasih!
tylerlindell
Untuk anak cucu: .pthfile tersebut disebut oleh dokumentasi modul situs a path configuration file. Catatan tentang file konfigurasi jalur: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.
Minh Tran
1

Cara ini berhasil untuk saya:

menambahkan jalur yang Anda suka:

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

memeriksa: Anda dapat menjalankan 'export' cmd dan memeriksa output atau Anda dapat memeriksanya menggunakan cmd ini:

python -c "import sys; print(sys.path)"
Pandous
sumber