Câu trả lời:
Từ tài liệu của warnings
mô-đun :
#!/usr/bin/env python -W ignore::DeprecationWarning
Nếu bạn đang ở trên Windows: chuyển -W ignore::DeprecationWarning
làm đối số cho Python. Mặc dù tốt hơn để giải quyết vấn đề, bằng cách chuyển sang int .
(Lưu ý rằng trong Python 3.2, các cảnh báo không dùng nữa được bỏ qua theo mặc định.)
export PYTHONWARNINGS="ignore::DeprecationWarning:simplejson"
để vô hiệu hóa cảnh báo mô tả django json từ sorl
Bạn chỉ nên sửa mã của mình nhưng chỉ trong trường hợp,
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
warnings.filterwarnings("ignore", category=DeprecationWarning)
. Tôi nghĩ rằng bạn phải chạy nó sau khi bạn nhập thư viện phát ra các cảnh báo, mặc dù tôi có thể bị nhầm lẫn.
from xgboost import XGBClassifier
. Tôi đã phải đặt warnings.filterwarnings("ignore", category=DeprecationWarning)
ngay trước khi nhập khẩu để nó hoạt động.
Tôi đã có những điều này:
/home/eddyp/virtualenv/lib/python2.6/site-packages/Twisted-8.2.0-py2.6-linux-x86_64.egg/twisted/persisted/sob.py:12:
DeprecationWarning: the md5 module is deprecated; use hashlib instead import os, md5, sys
/home/eddyp/virtualenv/lib/python2.6/site-packages/Twisted-8.2.0-py2.6-linux-x86_64.egg/twisted/python/filepath.py:12:
DeprecationWarning: the sha module is deprecated; use the hashlib module instead import sha
Đã sửa nó bằng:
import warnings
with warnings.catch_warnings():
warnings.filterwarnings("ignore",category=DeprecationWarning)
import md5, sha
yourcode()
Bây giờ bạn vẫn nhận được tất cả các DeprecationWarning
s khác , nhưng không phải là những nguyên nhân gây ra bởi:
import md5, sha
Tôi đã tìm thấy cách sạch nhất để làm điều này (đặc biệt là trên các cửa sổ) là thêm các mục sau vào C: \ Python26 \ Lib \ site-gói \ sitecustomize.py:
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
Lưu ý rằng tôi phải tạo tập tin này. Tất nhiên, thay đổi đường dẫn đến python nếu bạn khác.
Không có câu trả lời nào trong số này làm việc cho tôi vì vậy tôi sẽ đăng cách của mình để giải quyết vấn đề này. Tôi sử dụng đoạn at the beginning of my main.py
script sau và nó hoạt động tốt.
Sử dụng như sau (sao chép-dán nó):
def warn(*args, **kwargs):
pass
import warnings
warnings.warn = warn
Thí dụ:
import "blabla"
import "blabla"
def warn(*args, **kwargs):
pass
import warnings
warnings.warn = warn
# more code here...
# more code here...
ENV PYTHONWARNINGS="ignore::DeprecationWarning"
Khi bạn muốn bỏ qua các cảnh báo chỉ trong các chức năng, bạn có thể làm như sau.
import warnings
from functools import wraps
def ignore_warnings(f):
@wraps(f)
def inner(*args, **kwargs):
with warnings.catch_warnings(record=True) as w:
warnings.simplefilter("ignore")
response = f(*args, **kwargs)
return response
return inner
@ignore_warnings
def foo(arg1, arg2):
...
write your code here without warnings
...
@ignore_warnings
def foo2(arg1, arg2, arg3):
...
write your code here without warnings
...
Chỉ cần thêm trình trang trí @ignore_warnings vào chức năng bạn muốn bỏ qua tất cả các cảnh báo
Hãy thử mã dưới đây nếu bạn đang sử dụng Python3:
import sys
if not sys.warnoptions:
import warnings
warnings.simplefilter("ignore")
hoặc thử điều này ...
import warnings
def fxn():
warnings.warn("deprecated", DeprecationWarning)
with warnings.catch_warnings():
warnings.simplefilter("ignore")
fxn()
hoặc thử điều này ...
import warnings
warnings.filterwarnings("ignore")
Con trăn 3
Chỉ cần viết các dòng dưới đây dễ nhớ trước khi viết mã của bạn:
import warnings
warnings.filterwarnings("ignore")
Đối với python 3, chỉ cần viết mã dưới đây để bỏ qua tất cả các cảnh báo.
from warnings import filterwarnings
filterwarnings("ignore")
Không đánh bại bạn về điều đó nhưng bạn đang được cảnh báo rằng những gì bạn đang làm có thể sẽ ngừng hoạt động khi bạn nâng cấp python tiếp theo. Chuyển đổi sang int và được thực hiện với nó.
BTW. Bạn cũng có thể viết trình xử lý cảnh báo của riêng bạn. Chỉ cần gán một chức năng mà không làm gì. Làm cách nào để chuyển hướng cảnh báo python sang luồng tùy chỉnh?
/usr/bin/env: python -W ignore::DeprecationWarning: No such file or directory
lỗi. Nó hoạt động nếu tôi chạy python với-W ignore::DeprecationWarning
tùy chọn trên dòng lệnh, nhưng / usr / bin / env không xử lý được.