ฉันต้องสร้าง screencast ของเซสชัน ipython และเพื่อหลีกเลี่ยงผู้ดูที่สับสนฉันต้องการปิดการเตือนทั้งหมดที่warnings.warn
โทรออกจากแพ็คเกจที่แตกต่างกัน มีวิธีการกำหนดค่าไฟล์ ipythonrc เพื่อปิดใช้งานคำเตือนดังกล่าวทั้งหมดโดยอัตโนมัติหรือไม่
ฉันต้องสร้าง screencast ของเซสชัน ipython และเพื่อหลีกเลี่ยงผู้ดูที่สับสนฉันต้องการปิดการเตือนทั้งหมดที่warnings.warn
โทรออกจากแพ็คเกจที่แตกต่างกัน มีวิธีการกำหนดค่าไฟล์ ipythonrc เพื่อปิดใช้งานคำเตือนดังกล่าวทั้งหมดโดยอัตโนมัติหรือไม่
คำตอบ:
ในที่สุดฉันก็คิดออก สถานที่:
import warnings
warnings.filterwarnings('ignore')
~/.ipython/profile_default/startup/disable-warnings.py
ภายใน ฉันออกจากคำถามนี้และคำตอบสำหรับบันทึกในกรณีที่คนอื่นเจอปัญหาเดียวกัน
บ่อยครั้งที่มีประโยชน์ในการดูคำเตือนหนึ่งครั้ง สามารถตั้งค่าได้โดย:
warnings.filterwarnings(action='once')
warnings.filterwarnings('ignore')
ที่จุดเริ่มต้นของสคริปต์ของฉันฉันก็จะได้รับคำเตือนต่อไป มันควรจะเกี่ยวข้องกับความจริงที่ว่าฉันใช้ตัวเร่งความเร็ว TPU หรือไม่ TPU มีพฤติกรรมเฉพาะในกรณีนี้ ... ฉันสงสัย ฉันไม่เข้าใจ.
ฉันซ่อนคำเตือนในกล่องสีชมพูโดยเรียกใช้รหัสต่อไปนี้ในเซลล์:
from IPython.display import HTML
HTML('''<script>
code_show_err=false;
function code_toggle_err() {
if (code_show_err){
$('div.output_stderr').hide();
} else {
$('div.output_stderr').show();
}
code_show_err = !code_show_err
}
$( document ).ready(code_toggle_err);
</script>
To toggle on/off output_stderr, click <a href="javascript:code_toggle_err()">here</a>.''')
คำตอบที่ยอมรับไม่สามารถใช้งานได้ใน Jupyter (อย่างน้อยเมื่อใช้ห้องสมุดบางแห่ง)
โซลูชัน Javascript ที่นี่ซ่อนเฉพาะคำเตือนที่แสดงอยู่แล้ว แต่ไม่ใช่คำเตือนที่จะแสดงในอนาคต
ในการซ่อน / ยกเลิกการซ่อนคำเตือนใน Jupyter และ JupyterLab ฉันได้เขียนสคริปต์ต่อไปนี้ซึ่งเป็นหลักในการสลับ css เพื่อซ่อน / ยกเลิกการซ่อนคำเตือน
%%javascript
(function(on) {
const e=$( "<a>Setup failed</a>" );
const ns="js_jupyter_suppress_warnings";
var cssrules=$("#"+ns);
if(!cssrules.length) cssrules = $("<style id='"+ns+"' type='text/css'>div.output_stderr { } </style>").appendTo("head");
e.click(function() {
var s='Showing';
cssrules.empty()
if(on) {
s='Hiding';
cssrules.append("div.output_stderr, div[data-mime-type*='.stderr'] { display:none; }");
}
e.text(s+' warnings (click to toggle)');
on=!on;
}).click();
$(element).append(e);
})(true);
สำหรับ jupyter แล็บนี้ควรใช้งานได้ (@Alasja)
from IPython.display import HTML
HTML('''<script>
var code_show_err = false;
var code_toggle_err = function() {
var stderrNodes = document.querySelectorAll('[data-mime-type="application/vnd.jupyter.stderr"]')
var stderr = Array.from(stderrNodes)
if (code_show_err){
stderr.forEach(ele => ele.style.display = 'block');
} else {
stderr.forEach(ele => ele.style.display = 'none');
}
code_show_err = !code_show_err
}
document.addEventListener('DOMContentLoaded', code_toggle_err);
</script>
To toggle on/off output_stderr, click <a onclick="javascript:code_toggle_err()">here</a>.''')
ใช้ได้ทุกครั้ง -
import warnings
warnings.filterwarnings('ignore')