Rumah > pembangunan bahagian belakang > Tutorial Python > Apakah Perbezaan Utama Antara `python -m` dan `python` untuk Melaksanakan Modul Python?

Apakah Perbezaan Utama Antara `python -m` dan `python` untuk Melaksanakan Modul Python?

Barbara Streisand
Lepaskan: 2024-11-29 22:54:11
asal
946 orang telah melayarinya

What are the Key Differences Between `python -m` and `python ` for Executing Python Modules?

Peranan Pelbagai Rupa "-m" dalam Pelaksanaan Python Baris Perintah

Lazimnya diperhatikan bahawa python -m mymod1 mymod2.py args dan python mymod1. py mymod2.py perintah args kedua-duanya menghasilkan pelaksanaan mymod1.py dengan padanan sys.argv. Walau bagaimanapun, suis -m menawarkan pelbagai fungsi tambahan, melangkaui penukaran nama fail kepada nama modul.

1. Perlaksanaan Modul melalui Nama Modul

Bendera -m berfungsi sebagai cara alternatif untuk menggunakan modul Python terus dari baris arahan menggunakan nama modulnya, bukannya nama fail. Ini amat berguna untuk melaksanakan modul perpustakaan standard atau pakej pihak ketiga di mana nama fail mungkin tidak diketahui. Sebagai contoh, untuk melaksanakan modul http.server, seseorang hanya boleh menaip python -m http.server.

2. Penyepaduan ke dalam sys.path

Menggunakan suis -m bukan sahaja menggunakan modul tetapi juga mengubah suai sys.path untuk memasukkan direktori semasa, ciri yang tiada apabila menggunakan python mymod1.py. Ini membolehkan pelaksanaan pakej tempatan yang mengandungi import relatif tanpa memerlukan pemasangan.

3. Sokongan untuk Import Relatif

Selain menambah direktori semasa ke sys.path, -m membenarkan pelaksanaan modul dengan import relatif. Ini dicapai dengan menetapkan pembolehubah __package__ kepada modul induk bagi nama modul yang ditentukan, membolehkan import relatif berfungsi seperti yang dimaksudkan.

Perbandingan Kaedah Invokasi

Untuk menggambarkan perbezaan antara三种n cara untuk menggunakan modul Python, jadual berikut menunjukkan kunci atribut:

Invocation Method sys.path Modification name package
import None Absolute form of Immediate parent package
python Includes final directory in '__main__' None
python -m Includes current directory '__main__' Immediate parent package

Kesimpulan

Suis -m dalam python ialah alat serba boleh yang menawarkan pelbagai fungsi yang melampaui sekadar menukar nama fail kepada nama modul. Ia menyediakan cara yang lancar untuk melaksanakan modul daripada baris arahan, mengendalikan import relatif dan menyepadukan pakej tempatan ke dalam sys.path. Ini menjadikannya alat yang berharga untuk pembangun yang bekerja dengan modul Python secara tempatan dan luaran.

Atas ialah kandungan terperinci Apakah Perbezaan Utama Antara `python -m` dan `python` untuk Melaksanakan Modul Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan