Chạy các kịch bản Python trong PowerShell trực tiếp


22

Tôi đang sử dụng Windows PowerShell. Hãy nói rằng tôi có một kịch bản được gọi là test.pyin một vài điều. Nếu tôi làm:

PS D:\>.\test.py

sau đó nó sẽ mở một cửa sổ CMD in một vài thứ và sau đó đóng lại. Nó thực sự đang chạy trình thông dịch Python dưới CMD. Nếu tôi làm

PS D:\>python test.py

nó hoạt động như tôi mong đợi, với đầu ra xuất hiện trong PowerShell.

Làm cách nào tôi có thể làm cho nó để tập lệnh sẽ chạy trong PowerShell khi tôi chỉ đặt tên cho nó?


Khi bạn đã cập nhật PATHEXTbiến của mình bằng câu trả lời được chấp nhận của zdan bên dưới, nếu bạn đặt tập lệnh Python vào thư mục có tên PATHbiến của môi trường, bạn sẽ không cần phải cung cấp đường dẫn đủ điều kiện (hoặc tương đối) để chạy chúng nữa. Sau đó, các tập lệnh Python hoạt động giống như bất kỳ chương trình được cài đặt nào khác và bạn có thể nối chúng lại với nhau trong các đường ống với các chương trình / lệnh ghép ngắn khác ( ví dụ get-clipboard | myscript.py ) và tất cả những điều tốt đẹp khác. :)
TheDudeAdides

Câu trả lời:


24

Chỉnh sửa biến môi trường PATHEXT và thêm phần mở rộng .py.

Chỉ cần thêm dòng này vào hồ sơ PowerShell của bạn :

$env:PATHEXT += ";.py"

hoặc bạn chỉ có thể chỉnh sửa PATHEXT trên toàn cầu trong cài đặt hệ thống (chỉ cần tìm kiếm trong menu Bắt đầu cho "môi trường" và chọn tùy chọn "Chỉnh sửa biến môi trường cho tài khoản của bạn").


-1

Bạn có thể đã cài đặt nhiều phiên bản Python và phiên bản IDLE đang sử dụng mới hơn. Để xem phiên bản python nào bạn có, bạn có thể nhập> python -V tại một dòng lệnh. Nếu phiên bản đó có vẻ phù hợp thì bạn có thể cần đường dẫn đầy đủ đến tệp làm tham số thứ hai. Ví dụ> python C: \ myfile.py.

Nếu bạn đã cài đặt Python chính xác, luôn có khả năng chỉ cần gõ tên của tập lệnh sẽ chạy nó với python. Ví dụ> myfile.py

Tôi luôn thấy rằng việc thêm C: \ Python27 vào biến% PATH% và .PY vào biến% PATHEXT% giúp chạy tập lệnh dễ dàng hơn. Trong trường hợp này chỉ cần> myfile hoạt động.

Chỉnh sửa sau khi cập nhật:

Nhập chỉ> python không có tham số sẽ mở python ở 'chế độ tương tác', khác với chế độ tập lệnh hoặc tập lệnh mà tập lệnh của bạn dành cho. Nếu được thực thi với các đối số, đối số đầu tiên được lấy làm đường dẫn tệp và các đối số tiếp theo được chuyển đến tập lệnh trong danh sách sys.argv.


Tại sao bạn sao chép và dán câu trả lời của bạn từ đâu đó? Bạn thậm chí đã quên sao chép định dạng đúng và không có "Cập nhật" trong đó.
slhck
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.