2010-01-11 11 views
25

पदावनत जब मैं अपने अजगर स्क्रिप्ट मैं निम्न चेतावनीसेट मॉड्यूल चेतावनी

DeprecationWarning: the sets module is deprecated 

मैं इसे कैसे ठीक करूं मिल चलाने के?

+0

पायथन का कौन सा संस्करण? –

+0

पायथन संस्करण 2.6.4 – Dave

उत्तर

33

sets मॉड्यूल का उपयोग करना बंद करें, या पाइथन के पुराने संस्करण पर स्विच करें जहां इसे बहिष्कृत नहीं किया गया है।

pep-004 के अनुसार, sets को v2.6 के रूप में बहिष्कृत किया गया है, जिसे set and frozenset types में बदल दिया गया है।

+4

+1: चेतावनी का कारण बनने वाली समस्या को ठीक करके चेतावनी को ठीक करें। यह बहुत आसान लगता है। –

+1

यह केवल इतना आसान लगता है अगर आप जानते हैं कि इसे बदलने में बनाया गया है। चेतावनी क्यों नहीं कहती है !? – GreenAsJade

2

आपको sets मॉड्यूल का उपयोग करने के लिए उन्हें आयात करने की आवश्यकता नहीं है, वे बिल्टिन नेमस्पेस में हैं।

4

builting set बजाय आयात करने सेट मॉड्यूल

documentation से उपयोग करें:

सेट मॉड्यूल पदावनत किया गया है; बिल्ट-इन सेट और फ्रोजनसेट प्रकारों का उपयोग करना बेहतर है।

25

इतिहास:

अजगर 2.3 से पहले: शुरू की
अजगर 2.6 set और frozenset बनाया-इन:: कोई तय कार्यक्षमता
अजगर 2.3: sets मॉड्यूल पहुंचे
अजगर 2.4 sets मॉड्यूल पदावनत

आपको sets.Set के बजाय set का उपयोग करने के लिए अपना कोड बदलना चाहिए।

आप अभी भी अजगर 2.3 का उपयोग कर समर्थन करने के लिए सक्षम होने के लिए चाहते हैं, तो आप अपनी स्क्रिप्ट के शुरू में ऐसा कर सकते हैं:

try: 
    set 
except NameError: 
    from sets import Set as set 
5

आप इसे ठीक करने के लिए जेम्स निश्चित रूप से सही जवाब है चाहते हैं, लेकिन में केस तुम सिर्फ प्रतिवाद चेतावनी बंद करना चाहते हैं, तो आप ऐसा तरह अजगर चला सकते हैं:

$ python -Wignore::DeprecationWarning 
Python 2.6.2 (r262:71600, Sep 20 2009, 20:47:22) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sets 
>>> 

(से: http://puzzling.org/logs/thoughts/2009/May/3/python26-deprecation-warning)

आप भी इसे प्रोग्राम के रूप में अनदेखा कर सकते हैं:

import warnings 
warnings.simplefilter("ignore", DeprecationWarning) 
संबंधित मुद्दे