2015-09-22 9 views
9

मैं पायथन 2.7 के साथ एनम बैकपोर्ट enum34 का उपयोग कर रहा हूं।पायथन एनयूएम 34 नाम से उपयोग

दस्तावेज़ीकरण के अनुसार आइटम एक्सेस का उपयोग करके, एनम सदस्यों को उनके नाम से एक्सेस करना संभव होना चाहिए। यही है, निम्नलिखित काम करना चाहिए:

from enum import Enum 

class Foo(Enum): 
    bar = 1 
    baz = 2 

print(Foo['bar']) 

हालांकि, जब मैं कोड चल रहा अंतिम पंक्ति में इस त्रुटि मिलती है:

TypeError: 'type' object has no attribute ' __getitem__ '

मैं यहाँ कुछ याद आ रही हूँ या इस functionallity बस लागू नहीं किया है 2.7 बैकपोर्ट में?

+1

मेरे लिए काम करता है (पाइथन 2 और पायथन 3 दोनों)। – vaultah

+0

@vaultah: मैंने अभी इसे एक नए, कुंवारी वर्चुअलनेव में परीक्षण किया जहां मैंने केवल enum34 स्थापित किया और वहां काम किया। तो शायद कुछ अन्य पैकेज के साथ एक संघर्ष है? कोई विचार है कि मैं इसका पता कैसे लगा सकता हूं? – luator

+6

'आयात enum क्या करता है; प्रिंट (enum .__ फ़ाइल __) 'बताओ कि आपको आयात किया गया है? आपके पास शायद कहीं और एक अलग मॉड्यूल स्थापित है। फिर यह देखने के लिए कि क्या आपके पास पुराना संस्करण है या नहीं, उस फ़ाइल की तुलना नए वर्चुअलएनवी 'lib/python2.7/साइट-पैकेज/enum/'पैकेज सामग्री के साथ करें। –

उत्तर

8

आपको एनम मॉड्यूल के साथ संघर्ष हो रहा है। इस प्रयास करें:

pip uninstall Enum

Enum और Enum34 स्थापित दोनों के साथ

, इस काम नहीं किया। Enum अनइंस्टॉल करने के बाद, यह एक आकर्षण की तरह काम करता था।

संबंधित मुद्दे