Jalankan skrip Python di PowerShell secara langsung

22

Saya menggunakan Windows PowerShell. Katakanlah saya memiliki skrip bernama test.pyyang mencetak beberapa hal. Jika aku melakukan:

PS D:\>.\test.py

kemudian membuka jendela CMD yang mencetak beberapa hal dan kemudian menutup. Ini sebenarnya menjalankan juru bahasa Python di bawah CMD. Jika aku melakukan

PS D:\>python test.py

ini bertindak seperti yang saya harapkan, dengan output muncul di PowerShell.

Bagaimana saya bisa membuatnya sehingga skrip akan berjalan di PowerShell ketika saya baru saja memberikan namanya?

jcrawfordor
sumber
Setelah Anda memperbarui PATHEXTvariabel menggunakan jawaban yang diterima zdan di bawah ini, jika Anda meletakkan skrip Python di direktori yang dinamai oleh PATHvariabel lingkungan Anda , tidak perlu lagi menyediakan jalur yang memenuhi syarat (atau relatif) untuk menjalankannya lagi. Kemudian skrip Python berperilaku seperti program lain yang diinstal, dan Anda dapat bergabung bersama dalam pipeline dengan program lain / cmdlet ( misalnya get-clipboard | myscript.py ), dan semua kebaikan lainnya. :)
TheDudeAbides

Jawaban:

24

Edit variabel lingkungan PATHEXT dan tambahkan ekstensi .py.

Cukup tambahkan baris ini ke profil PowerShell Anda :

$env:PATHEXT += ";.py"

atau Anda bisa mengedit PATHEXT secara global di pengaturan sistem (cukup cari di menu Start untuk "lingkungan" dan pilih opsi untuk "Edit variabel lingkungan untuk akun Anda").

zdan
sumber
-1

Anda mungkin telah menginstal lebih dari satu versi Python dan versi IDLE yang digunakan lebih baru. Untuk melihat versi python yang Anda miliki, Anda dapat mengetik> python -V di baris perintah. Jika versi itu terlihat sesuai maka Anda mungkin perlu path lengkap ke file sebagai parameter kedua. Misalnya> python C: \ myfile.py.

Jika Anda menginstal Python dengan benar, selalu ada kemungkinan hanya mengetik nama skrip akan menjalankannya dengan python. Misalnya> myfile.py

Saya selalu menemukan bahwa menambahkan C: \ Python27 ke variabel% PATH% dan .PY ke variabel% PATHEXT% membuat skrip yang berjalan lebih mudah. Dalam kasus ini> myfile seharusnya bekerja.

Edit setelah Pembaruan:

Mengetik hanya> python tanpa parameter membuka python dalam 'mode interaktif' yang berbeda dari mode batch atau scripting yang menjadi tujuan skrip Anda. Jika dieksekusi dengan argumen, argumen pertama diambil sebagai path file dan argumen lebih lanjut diteruskan ke skrip dalam daftar sys.argv.

Supri Adi
sumber
Mengapa Anda menyalin dan menempelkan jawaban Anda dari suatu tempat? Anda bahkan lupa menyalin format dengan benar, dan tidak ada "Perbarui" di sana.
slhck