Có cách nào để tập lệnh python tự động phát hiện xem nó đang được chạy tương tác hay không? Ngoài ra, người ta có thể phát hiện xem ipython đang được sử dụng so với python c thường xuyên thực thi?Phát hiện khi một tập lệnh python đang được chạy tương tác trong ipython
Bối cảnh: Tập lệnh python của tôi thường có lệnh gọi exit() trong đó. Theo thời gian, tôi chạy các kịch bản tương tác để gỡ lỗi và lược tả, thường là trong ipython. Khi tôi đang chạy tương tác, tôi muốn chặn các cuộc gọi để thoát.
Làm rõ:
Giả sử tôi có một kịch bản, myscript.py, trông giống như:
#!/usr/bin/python
...do useful stuff...
exit(exit_status)
Đôi khi, tôi muốn chạy các kịch bản trong một phiên IPython mà tôi đã bắt đầu , nói điều gì đó như:
In [nnn]: %run -p -D myscript.pstats myscript.py
Ở cuối tập lệnh, lệnh exit() sẽ khiến ipython treo trong khi đó trượt tôi nếu tôi thực sự muốn thoát. Đây là một sự khó chịu nhỏ trong khi gỡ rối (quá nhỏ để tôi quan tâm), nhưng nó có thể làm hỏng kết quả lược tả: dấu nhắc thoát được đưa vào kết quả hồ sơ (làm cho phân tích khó hơn nếu tôi bắt đầu một phiên lược tả trước khi đi ăn trưa) .
Những gì tôi muốn là một cái gì đó cho phép tôi thay đổi kịch bản của tôi vì vậy nó trông giống như:
#!/usr/bin/python
...do useful stuff...
if is_python_running_interactively():
print "The exit_status was %d" % (exit_status,)
else:
exit(exit_status)
vỏ tương tác chuẩn mà bạn có với 'python' là gì? – n611x007