Tôi có một kịch bản python sử dụng tiến trình con:Windows - chạy py trực tiếp vs chạy python blah.py cư xử khác nhau
import subprocess
print "Running stuff"
subprocess.check_call(["do_stuff.bat"])
print "Stuff run"
Nếu đây được mệnh danh là blah.py, và tôi chạy (từ một dấu nhắc lệnh) :
python blah.py
Tôi sẽ nhận được kết quả từ do_stuff.bat (hoặc bất kỳ thứ gì tôi chạy).
Nếu đây là chạy như:
blah.py
Sau đó, tôi không nhận được kết quả từ do_stuff.bat, chỉ có những điều khoản in.
Cho đến nay đã thấy trên Windows Server 2003. Phiên bản Python 2.5.2 (bị kẹt ở đó vì nhiều lý do khác nhau). Nhìn vào loại tập tin hành động liên quan đến tôi thấy:
Python.File = "C: \ Python25 \ python.exe" "% 1" % *
Vì vậy, bất cứ ai có thể giải thích sự khác biệt?
tôi sẽ đánh bạo đoán và nói rằng python gọi một cách rõ ràng làm cho các tiêu chuẩn thiết bị đầu cuối ra trong khi chỉ kêu gọi các tập tin ống tiêu chuẩn ra ở một nơi khác. Tôi không thể xác nhận điều này. – Exelian
Trên một cửa sổ 7 64 bit chạy đầu ra Python 2.6.6 từ một lô được in ra màn hình sau khi tự gọi chính nó. – Helbreder
Trên cửa sổ của tôi 7 32 bit chạy Python 2.6.6 không thể tái tạo nó. –