Jupyter'de yalnızca son sonuç değil, tam çıktı nasıl görüntülenir?


115

Jupyter'in yalnızca son sonucu değil, tüm etkileşimli çıktıları yazdırmaya başvurmadan basmasını istiyorum. Nasıl yapılır?

Misal :

a=3
a
a+1

Görüntülemek isterim

3
4


21
Çok sık kullanılmaz, ama aslında bunu yapmak gereken bir yapılandırma seçeneği vardır - set InteractiveShell.ast_node_interactivityiçin 'all'de ipython çekirdek yapılandırma dosyası .
Thomas K.

Teşekkürler Thomas, aradığım
buydu

Var ! ! !
vasili111

Yanıtlar:


181

Thomas sayesinde aradığım çözüm şudur:

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

2
Bu harika bir ipucu. - Yalnızca son çıktı satırına döndürülecek bayrak değeri nedir?
Reblochon Masque

12
Varsayılan değer: "last_expr". Burada birçok başka seçenek bulabilirsiniz: ipython.readthedocs.org/en/stable/config/options/terminal.html
mbh86

8
Referans için, bunun için seçenekler 'tümü', 'hiçbiri', 'son' ve 'son_expr'dir. 'Last' ve 'last_expr' arasındaki fark: Eğer hücreniz bir ifade içeren bir döngü ile bitiyorsa, 'son' size döngünün her yinelemesinde bu ifadenin sonuçlarını gösterecektir. "last_expr" (varsayılan) bunu göstermez: yalnızca hücrenin sonunda çıplak bir ifadenin sonucunu görüntüler.
Thomas K

1
Kutsal moly ... bu özellik bir katil.
flow2k

Yeni (ish) last_expr_or_assign, demolar yapmak için harika! Artık aynı öğeyi yazdırmak için birden çok kez yeniden yazmak yok.
Henry Schreiner

33

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

1) Bu kodu bir Jupyter hücresine yerleştirin:

from IPython.core.interactiveshell import InteractiveShell

InteractiveShell.ast_node_interactivity = "all"

2) Windows'ta aşağıdaki adımlar değişikliği kalıcı hale getirir. Diğer işletim sistemleri için çalışmalıdır. Yolu değiştirmeniz gerekebilir.

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

Aşağıdaki kodla profile_defaults'da bir ipython_config.py dosyası oluşturun:

c = get_config()

c.InteractiveShell.ast_node_interactivity = "all"

0

Dizüstü Bilgisayar Bazında

Diğerlerinin yanıtladığı gibi, aşağıdaki kodu bir Jupyter Lab veya Jupyter Notebook hücresine koymak işe yarayacaktır:

from IPython.core.interactiveshell import InteractiveShell

InteractiveShell.ast_node_interactivity = "all"

Kalıcı değişim

Ancak, bunu kalıcı hale getirmek ve Jupyter Lab'ı kullanmak istiyorsanız, bir IPython not defteri yapılandırma dosyası oluşturmanız gerekecektir. Bunu yapmak için aşağıdaki komutu çalıştırın ( YAPMAYIN : - aşağıda daha ayrıntılı Eğer Notebook Jupyter kullanırsanız çalıştırın)

ipython profile create

Jupyter Notebook kullanıyorsanız, bu dosya önceden oluşturulmuş olmalı ve tekrar çalıştırmanıza gerek kalmayacaktır. Aslında, bu komutu çalıştırmak mevcut tercihlerinizin üzerine yazabilir .

Bu dosyayı oluşturduktan sonra, Jupyter Lab ve Notebook kullanıcıları için, aşağıdaki kodu dosyaya ekleyin C:\Users\USERNAME\\.ipython\profile_default\ipython_config.py:

c.InteractiveShell.ast_node_interactivity = "all"

Orada gerek olduğunu tespit c = get_config()Jupyter yeni sürümlerinde, ancak bu sizin için işe yaramazsa, eklemek c = get_config()Dosyanın başına.

Dışında daha fazla bayrak seçeneği için şu bağlantıyı "all"ziyaret edin : https://ipython.readthedocs.io/en/stable/config/options/terminal.html#configtrait-InteractiveShell.ast_node_interactivity

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.