Saya bekerja dengan kode yang melempar banyak (untuk saya saat ini) peringatan tidak berguna menggunakan warnings
perpustakaan. Membaca (/ memindai) dokumentasi saya hanya menemukan cara untuk menonaktifkan peringatan untuk fungsi tunggal . Tetapi saya tidak ingin mengubah begitu banyak kode.
Apakah mungkin ada bendera python -no-warning foo.py
?
Apa yang akan kamu rekomendasikan?
python
suppress-warnings
Framester
sumber
sumber
FutureWarning: This search is broken in 1.3 and earlier, and will be fixed in a future version. If you rely on the current behaviour, change it to [this other thing]
. Saya lebih suka mengabaikan peringatan sekarang dan menunggu itu diam-diam diperbaiki daripada menulis kode jelek hanya untuk menghindari peringatan yang tidak berbahaya.Jawaban:
Ada opsi -W .
python -W ignore foo.py
sumber
Apakah Anda melihat bagian peringatan penekan python docs?
Saya tidak memaafkannya, tetapi Anda bisa menekan semua peringatan dengan ini:
Ex:
sumber
category
argumen:warnings.filterwarnings("ignore", category=DeprecationWarning)
warnings.filterwarnings
fungsi:module
. Ini memungkinkan Anda untuk mengabaikan peringatan dari modul yang ditentukan.Anda juga dapat mendefinisikan variabel lingkungan (fitur baru di 2010 - yaitu python 2.7)
Tes seperti ini: Default
Abaikan peringatan
Untuk peringatan penghentian lihatlah cara-to-abaikan-penghentian-peringatan-di-python
Disalin di sini ...
Dari dokumentasi
warnings
modul :Jika Anda menggunakan Windows: berikan
-W ignore::DeprecationWarning
argumen ke Python. Lebih baik menyelesaikan masalah ini, dengan melakukan casting ke int .(Perhatikan bahwa dalam Python 3.2, peringatan penghentian diabaikan secara default.)
Atau:
Sekarang Anda masih mendapatkan semua yang lain
DeprecationWarning
, tetapi bukan yang disebabkan oleh:sumber
tox
, menambahkanPYTHONWARNINGS=ignore
untuksetenv
keluaran merek kurang kotor.Ini adalah pertanyaan lama tetapi ada beberapa panduan baru di PEP 565 yang untuk mematikan semua peringatan jika Anda sedang menulis aplikasi python yang harus Anda gunakan:
Alasan ini direkomendasikan adalah bahwa ini mematikan semua peringatan secara default tetapi yang paling penting memungkinkan mereka untuk diaktifkan kembali melalui
python -W
pada baris perintah atauPYTHONWARNINGS
.sumber
Jika Anda tidak ingin sesuatu yang rumit, maka:
sumber
warnings.filterwarnings("default", category=FutureWarning)
Jika Anda tahu peringatan tidak berguna yang biasanya Anda temui, Anda dapat memfilternya melalui pesan.
sumber
Saya menyadari ini hanya berlaku untuk ceruk situasi, tetapi dalam
numpy
konteks saya sangat suka menggunakannp.errstate
:Namun, menggunakan
np.errstate
:Bagian terbaiknya adalah Anda dapat menerapkan ini hanya pada baris kode yang sangat spesifik.
sumber
peringatan adalah output melalui stderr dan solusi sederhana adalah menambahkan '2> / dev / null' ke CLI. ini masuk akal bagi banyak pengguna seperti mereka yang menggunakan centos 6 yang terjebak dengan dependensi python 2.6 (seperti yum) dan berbagai modul didorong ke tepi kepunahan dalam jangkauan mereka.
ini terutama berlaku untuk kriptografi yang melibatkan SNI dan lain-lain. seseorang dapat memperbarui 2.6 untuk penanganan HTTPS menggunakan proc di: https://urllib3.readthedocs.io/en/latest/user-guide.html#ssl-py2
peringatan masih ada di tempat, tetapi semua yang Anda inginkan adalah port-porting. mengarahkan ulang stderr akan meninggalkan Anda dengan terminal / output shell bersih meskipun konten stdout itu sendiri tidak berubah.
menanggapi FriendFX. kalimat satu (1) merespons langsung ke masalah dengan solusi universal. kalimat dua (2) mempertimbangkan jangkar yang dikutip ulang 'menonaktifkan peringatan' yang merupakan python 2.6 spesifik dan mencatat bahwa pengguna RHEL / centos 6 tidak dapat secara langsung melakukannya tanpa 2.6. meskipun tidak ada peringatan khusus yang dikutip, para dua (2) menjawab pertanyaan 2.6 yang paling sering saya dapatkan adalah kedatangan singkat dalam modul kriptografi dan bagaimana seseorang dapat "memodernisasi" (yaitu, meningkatkan, mendukung, memperbaiki) kinerja HTTPS / TLS python . para tiga (3) hanya menjelaskan hasil penggunaan pengarahan ulang dan peningkatan modul / dependensi.
sumber