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.
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.
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.
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.
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 |
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!