Làm thế nào để hiển thị đầu ra đầy đủ trong Jupyter, không chỉ kết quả cuối cùng?


115

Tôi muốn Jupyter in tất cả đầu ra tương tác mà không cần dùng đến in, không chỉ kết quả cuối cùng. Làm thế nào để làm nó?

Thí dụ :

a=3
a
a+1

Tôi muốn trưng bày

3
4


21
Nó không được sử dụng thường xuyên, nhưng trên thực tế, có một tùy chọn cấu hình sẽ thực hiện việc này - được đặt InteractiveShell.ast_node_interactivitythành 'all'trong tệp cấu hình hạt nhân IPython .
Thomas K,

Cảm ơn bạn Thomas, đó là những gì tôi đang tìm kiếm :)
mbh86

Nó có tồn tại ! ! !
vasili111

Câu trả lời:


179

Cảm ơn Thomas, đây là giải pháp tôi đang tìm kiếm:

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

2
Đây là một mẹo tuyệt vời. - Giá trị cờ chỉ hoàn nguyên về dòng cuối cùng của đầu ra là gì?
Reblochon Masque

12
Giá trị mặc định là: 'last_expr'. Bạn có thể tìm thấy nhiều tùy chọn khác tại đây: ipython.readthedocs.org/en/stable/config/options/terminal.html
mbh86

8
Để tham khảo, các tùy chọn cho đó là 'tất cả', 'không có', 'cuối cùng' và 'last_expr'. Sự khác biệt giữa 'last' và 'last_expr': nếu ô của bạn kết thúc bằng một vòng lặp có chứa một biểu thức, thì 'last' sẽ hiển thị cho bạn kết quả từ biểu thức đó trong mỗi lần lặp lại của vòng lặp. 'last_expr' (mặc định) sẽ không hiển thị điều đó: nó sẽ chỉ hiển thị kết quả của một biểu thức trống ở cuối ô.
Thomas K

1
Chúa ơi ... tính năng này là một kẻ giết người.
flow2k

(Ish) mới last_expr_or_assignthật tuyệt vời để thực hiện các bản demo! Không còn phải gõ lại cùng một mục nhiều lần chỉ để in nó nữa.
Henry Schreiner

33

https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/

1) Đặt mã này vào ô Jupyter:

from IPython.core.interactiveshell import InteractiveShell

InteractiveShell.ast_node_interactivity = "all"

2) Trong Windows, các bước dưới đây thực hiện thay đổi vĩnh viễn. Nên hoạt động cho các hệ điều hành khác. Bạn có thể phải thay đổi đường dẫn.

C:\Users\your_profile\\.ipython\profile_default

Tạo tệp ipython_config.py trong profile_defaults với mã sau:

c = get_config()

c.InteractiveShell.ast_node_interactivity = "all"

0

Cơ sở trên mỗi sổ tay

Như những người khác đã trả lời, đặt mã sau vào ô Jupyter Lab hoặc Jupyter Notebook sẽ hoạt động:

from IPython.core.interactiveshell import InteractiveShell

InteractiveShell.ast_node_interactivity = "all"

Thay đổi vĩnh viễn

Tuy nhiên, nếu bạn muốn đặt nó vĩnh viễn và sử dụng Jupyter Lab, bạn sẽ cần tạo tệp cấu hình sổ ghi chép IPython. Chạy lệnh sau để làm như vậy ( KHÔNG chạy nếu bạn sử dụng Máy tính xách tay Jupyter - chi tiết bên dưới):

ipython profile create

Nếu bạn đang sử dụng Jupyter Notebook, tệp này lẽ ra đã được tạo và không cần phải chạy lại. Trên thực tế, chạy lệnh này có thể ghi đè các tùy chọn hiện tại của bạn.

Khi bạn đã tạo tệp này, đối với người dùng Jupyter Lab và Notebook, hãy thêm mã sau vào tệp C:\Users\USERNAME\\.ipython\profile_default\ipython_config.py:

c.InteractiveShell.ast_node_interactivity = "all"

Tôi thấy không cần thiết c = get_config()trong các phiên bản mới hơn của Jupyter, nhưng nếu điều này không hiệu quả với bạn, hãy thêm c = get_config()phần đầu của tệp.

Để biết thêm các tùy chọn gắn cờ khác "all", hãy truy cập liên kết này : https://ipython.readthedocs.io/en/stable/config/options/terminal.html#configtrait-InteractiveShell.ast_node_interactivity

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.