পাইথনে অবজ্ঞার সতর্কতাগুলিকে কীভাবে উপেক্ষা করবেন


176

আমি এটি পেতে থাকি:

DeprecationWarning: integer argument expected, got float

আমি কীভাবে এই বার্তাটি সরিয়ে দেব? পাইথনে সতর্কতা এড়ানোর কোনও উপায় আছে কি?

উত্তর:


121

warningsমডিউলটির ডকুমেন্টেশন থেকে :

 #!/usr/bin/env python -W ignore::DeprecationWarning

আপনি যদি উইন্ডোজে থাকেন: -W ignore::DeprecationWarningপাইথনের পক্ষে যুক্তি হিসাবে পাস করুন । বেটার যদিও এ কাস্ট দ্বারা ইস্যু, সমাধান করতে int- এ

(দ্রষ্টব্য যে পাইথন ৩.২-তে, অবজ্ঞা সতর্কতাগুলি ডিফল্টরূপে উপেক্ষা করা হবে))


8
আমি আশা করি আমি এই কাজটি করতে পারতাম ... আমি একটি /usr/bin/env: python -W ignore::DeprecationWarning: No such file or directoryত্রুটি পেয়েছি । -W ignore::DeprecationWarningকমান্ড-লাইনের অপশনটি দিয়ে অজগর চালালে এটি কাজ করে তবে / usr / bin / env এর সাথে কাজ করে না।
ওয়ারোনিকা

4
উইন্ডোজ-কেবলমাত্র সমাধান বলে মনে হচ্ছে।
ড্যানিয়েল মাইলস

15
আপনি env পরিবর্তনশীল পাইথনওয়ার্নিংস সেট করতে পারেন এটি আমার export PYTHONWARNINGS="ignore::DeprecationWarning:simplejson"পক্ষে জ্যাঙ্গো জসন হ'ল সংক্ষিপ্তসার সতর্কবার্তা অক্ষম করার জন্য কাজ করেছে
ইয়ভেস

@ ইয়ভেস, যদি এটি উত্তর হয়, আমি এটির জন্য ভোট দিয়েছি। সিস্টেমভুক্ত নির্দিষ্ট সতর্কতাগুলি উপেক্ষা করার একটি পরিষ্কার উপায় বলে মনে হচ্ছে। আমি এটি আমার / প্রোফাইলে রেখেছি। দুর্দান্ত কাজ করে।
অ্যালানবেরি

হাই, আমরা কীভাবে এই হ্রাসের সতর্কতা বার্তাকে প্রকারের তথ্যের বার্তায় পরিণত করি। আমি যা চাই তা হ'ল কনসোলে বার্তাটি প্রদর্শন করা যাতে কোনও ধরণের সতর্কতা হিসাবে শ্রেণিবদ্ধ করা হয় না।
কৃষ্ণা ওজা

194

আপনার কেবল আপনার কোড ঠিক করা উচিত তবে কেবল ক্ষেত্রে,

import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning) 

2
IPython ব্যবহার করে আমার জন্য কাজ করেছেন
zbinsd

21
এটি আমার পক্ষে মোটেও কাজ করে না, এখনও অবমূল্যায়ন সতর্কতাগুলি দেখছে।
ব্যবহারকারী 1244215

8
@ ব্যবহারকারী 1244215 আমি ভুল হতে পারি তবে আমি মনে করি আপনার কোডটি আপনি কোথায় চালান সে বিষয়টি বিবেচনা করে warnings.filterwarnings("ignore", category=DeprecationWarning)। আমি মনে করি যে আপনি যে লাইব্রেরিটি সতর্কতাগুলি ছড়িয়ে দিচ্ছেন তা আমদানির পরে চালাতে হবে, যদিও আমার ভুল হতে পারে।
জ্যাক কেলি

1
@ কোডিংইউর লাইফ বিভাগটি প্রয়োজন তাই আপনি এখনও রানটাইম ওয়ার্নিং ইত্যাদির মতো অন্যান্য ধরণের সতর্কতা দেখতে পাবেন
ইসমাইল

1
আমার ক্ষেত্রে, কোডটি যে সতর্কবার্তা তৈরি করেছিল তা ছিল from xgboost import XGBClassifier। আমি রাখা ছিল warnings.filterwarnings("ignore", category=DeprecationWarning)কাজ করার জন্য এটি যে আমদানি সামনে অবিলম্বে।
sedh

193

আমার এই ছিল:

/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

এটি দিয়ে স্থির করে:

import warnings

with warnings.catch_warnings():
    warnings.filterwarnings("ignore",category=DeprecationWarning)
    import md5, sha

yourcode()

এখন আপনি অন্যান্য DeprecationWarningসমস্তগুলি পান তবে এটির কারণে নয়:

import md5, sha

2
জট্টিল, তাই আপনাকে অনেক ধন্যবাদ!! (এই মুহূর্তে আমি বুঝতে পেরেছিলাম যে আমি এতে কোডের অ-আমদানি বিটগুলিও গুটিয়ে রাখতে পারি, যেহেতু কিছু প্যাকেজগুলি আমদানির পরে যখন ব্যবহৃত হয় তখন অবচয় ওয়ার্নিংও জেনারেট করে specific) কেবলমাত্র নির্দিষ্ট অবমূল্যায়নের সতর্কতাগুলিকে নিঃশব্দ করার খুব দুর্দান্ত উপায় যা আমি ইতিমধ্যে দেখেছি এবং সিদ্ধান্ত নিয়েছি আমি উপেক্ষা করতে চাই
ওয়ারোনিকা

29

আমি এটির সবচেয়ে পরিষ্কার উপায়টি খুঁজে পেয়েছি (বিশেষ করে উইন্ডোজগুলিতে) সিটিতে নিম্নলিখিতটি যুক্ত করে: \ পাইথন 26 \ লিবি \ সাইট-প্যাকেজস \ সাইটকাস্টমাইজ.পি:

import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)

নোট করুন যে আমাকে এই ফাইলটি তৈরি করতে হয়েছিল। অবশ্যই, যদি আপনার আলাদা হয় তবে অজগরটির পথটি পরিবর্তন করুন।


26

এই উত্তরগুলির কোনওটিই আমার পক্ষে কাজ করেনি তাই এটি সমাধানের জন্য আমি আমার পোস্ট পোস্ট করব। আমি নিম্নলিখিত at the beginning of my main.pyস্ক্রিপ্টটি ব্যবহার করি এবং এটি সূক্ষ্মভাবে কাজ করে।


নিম্নলিখিতটি এটির মতো ব্যবহার করুন (এটি অনুলিপি করুন):

def warn(*args, **kwargs):
    pass
import warnings
warnings.warn = warn

উদাহরণ:

import "blabla"
import "blabla"

def warn(*args, **kwargs):
    pass
import warnings
warnings.warn = warn

# more code here...
# more code here...


4
এটি তখন কাজ করেছিল যখন অন্য সমস্ত সমাধান না দেয়। ধন্যবাদ!
সিএক্সএক্সএল

এটি আমাকেও বাঁচিয়েছিল। খুশি যে আমি সাহায্য করতে পারি।
seralouk

অ্যাস্ট্রোপাই অবমূল্যায়ন সতর্কতার জন্য 3.7.3 এ কাজ করে না। :(
ingyhere

আমার জন্য কাজ করেছেন, ধন্যবাদ :)
ভালকিরি 55

বড় খবর ! চিয়ার্স
seralouk

6

সঠিক যুক্তি পাস? : P: P

আরও গুরুতর নোটে, আপনি হস্তক্ষেপের সতর্কতাগুলিকে উপেক্ষা করার জন্য ডাব্লিউআই :: অবজ্ঞাত ওয়ার্নিংটি কম্যান্ড লাইনে দোভাষীকে দিতে পারেন।


5

ডকার সলিউশন

  • পাইথন অ্যাপ্লিকেশন চালানোর আগে সমস্ত সতর্কতা অক্ষম করুন
    • আপনি নিজের ডকারাইজড পরীক্ষাও অক্ষম করতে পারেন
ENV PYTHONWARNINGS="ignore::DeprecationWarning"


4

আপনি যখন কেবলমাত্র কার্যক্রমে সতর্কতাগুলি উপেক্ষা করতে চান আপনি নিম্নলিখিতগুলি করতে পারেন।

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
    ...

আপনি সমস্ত সতর্কতা উপেক্ষা করতে চান এমন ফাংশনে কেবল @ignore_warnings ডেকরেটর যুক্ত করুন


3

আপনি যদি পাইথন 3 ব্যবহার করছেন তবে নীচের কোডটি ব্যবহার করে দেখুন:

import sys

if not sys.warnoptions:
    import warnings
    warnings.simplefilter("ignore")

অথবা এটি চেষ্টা করুন ...

import warnings

def fxn():
    warnings.warn("deprecated", DeprecationWarning)

with warnings.catch_warnings():
    warnings.simplefilter("ignore")
    fxn()

অথবা এটি চেষ্টা করুন ...

import warnings
warnings.filterwarnings("ignore")

2

পাইথন ঘ

আপনার কোড লেখার আগে মনে রাখা সহজ যে লাইনের নিচে কেবল লিখুন:

import warnings

warnings.filterwarnings("ignore")

0

আপনি যদি কী জানেন তবে অন্য উপায়টি হ'ল আপনাকে সতর্ক করে এমন ফাইলটি সন্ধান করা হয় (ফাইলটির পথটি সতর্কতার তথ্যে দেখানো হয়েছে), সতর্কতাগুলি উত্পন্ন করে এমন লাইনগুলিতে মন্তব্য করুন।


0

অজগর 3 এর জন্য, সমস্ত সতর্কতা উপেক্ষা করার জন্য কেবল কোডগুলির নীচে লিখুন।

from warnings import filterwarnings
filterwarnings("ignore")

-2

এটি সম্পর্কে আপনাকে মারধর করার জন্য নয় তবে আপনাকে সতর্ক করা হচ্ছে যে আপনি যা করছেন তা সম্ভবত আপনার পরবর্তী অজগরটি আপগ্রেড করার সময় কাজ করা বন্ধ হয়ে যাবে। ইনট এ রূপান্তর করুন এবং এটি দিয়ে সম্পন্ন করুন।

BTW। আপনি নিজের সতর্কতা হ্যান্ডলারও লিখতে পারেন। কেবল একটি ফাংশন বরাদ্দ করুন যা কিছুই করে না। কীভাবে অজস্র সতর্কতাগুলি কাস্টম স্ট্রিমে পুনর্নির্দেশ করবেন?


4
সেই পরামর্শটি কেবল তখনই কার্যকর হয় যদি এটি সত্যই তার নিজস্ব কোড হয় এবং কোনও তৃতীয় পক্ষের প্যাকেজ থেকে নয়।
ক্রিস্টোফার বারবার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.