Bagaimana saya dapat menggunakan PYTHONPATH? Ketika saya mencoba menjalankan skrip di path file tidak ditemukan. Ketika saya cd ke direktori memegang skrip menjalankan skrip. Jadi apa gunanya PYTHONPATH?
$ echo $PYTHONPATH
:/home/randy/lib/python
$ tree -L 1 '/home/randy/lib/python'
/home/randy/lib/python
├── gbmx_html.py
├── gbmx.py
├── __init__.py
├── __pycache__
├── scripts
└── yesno.py
$ python gbmx.py -h
python: can't open file 'gbmx.py': [Errno 2] No such file or directory
$ cd '/home/randy/lib/python'
Setelah cd ke direktori file itu berjalan ..
$ python gbmx.py -h
usage: gbmx.py [-h] [-b]
Mengapa saya tidak dapat menggunakan PYTHONPATH?
PYTHONPATH
.PYTHONPATH
Jawaban:
Saya pikir Anda agak bingung. PYTHONPATH menetapkan jalur pencarian untuk mengimpor modul python, bukan untuk mengeksekusinya seperti yang Anda coba.
http://docs.python.org/2/using/cmdline.html#envvar-PYTHONPATH
Yang Anda cari adalah PATH.
Namun, untuk menjalankan skrip python sebagai program, Anda juga perlu mengatur shebang untuk Python di baris pertama. Sesuatu seperti ini seharusnya bekerja:
Dan berikan hak eksekusi untuk itu:
Maka Anda harus bisa lari
gmbx.py
dari mana saja.sumber
export PATH=$PATH:/home/etc
Anda membingungkan PATH dan PYTHONPATH. Anda perlu melakukan ini:
PYTHONPATH digunakan oleh interpreter python untuk menentukan modul mana yang akan dimuat.
PATH digunakan oleh shell untuk menentukan executable mana yang akan dijalankan.
sumber
PYTHONPATH
hanya memengaruhiimport
pernyataan, bukan pencarian juru bahasa Python tingkat atas yang diberikan sebagai argumen.Perlu
PYTHONPATH
diatur bukan ide yang bagus - karena dengan apa pun yang bergantung pada variabel lingkungan, mereplikasi hal-hal secara konsisten di berbagai mesin menjadi rumit. Lebih baik menggunakan Python 'paket' yang dapat diinstal (menggunakan 'pip', atau distutils) di jalur yang bergantung pada sistem yang sudah diketahui Python.Baca https://the-hitchhikers-guide-to-packaging.readthedocs.org/en/latest/ - 'Panduan Hitchhiker untuk Pengemasan', dan juga http://docs.python.org/3/tutorial /modules.html - yang menjelaskan PYTHONPATH dan paket di tingkat yang lebih rendah.
sumber
PYTHONPATH
. Saya tidak menghitung lagi berapa kali saya harus berurusan dengan program Python yang belum sempurna yang menekankan padapip install
hal di mana saya adalah pengguna biasa pada host tidak hanya tanpa akses root (saya tahu pip dapat melakukan instalasi lokal) tetapi juga tanpa pip. Berikut ini adalah saran untuk semua orang yang mendistribusikan perangkat lunak Python - cobalah untuk menginstal perangkat lunak Anda sendiri pada host vanilla Linux di mana Anda tidak memiliki akses root dan hanya distribusi inti Python tanpa pip, pertama.Saya pikir Anda bingung antara PATH dan PYTHONPATH. Yang harus Anda lakukan untuk menjalankan 'skrip' adalah memilikinya direktori orangtua ditambahkan ke variabel PATH Anda. Anda dapat menguji ini dengan menjalankan
Juga, jika
myscripy.py
tergantung pada modul khusus, direktori orang tua mereka juga harus ditambahkan ke variabel PYTHONPATH. Sayangnya, karena perancang python jelas menggunakan narkoba, menguji impor Anda di balasan dengan yang berikut ini tidak akan menjamin bahwa PYTHONPATH Anda diatur dengan benar untuk digunakan dalam skrip. Bagian dari pemrograman python ini ajaib dan tidak dapat dijawab dengan tepat di stackoverflow.sumber
Dengan PYTHONPATH ditetapkan seperti dalam contoh Anda, Anda seharusnya dapat melakukannya
-m
Opsi akan membuat pencarian Python untuk modul Anda di jalur. Python biasanya mencari modul, termasuk apa yang Anda tambahkan ke PYTHONPATH. Ketika Anda menjalankan penerjemah sepertipython gmbx.py
, itu mencari file tertentu dan PYTHONPATH tidak berlaku.sumber