2011-07-08 22 views
7

मैं इस त्रुटि के बारे में कुछ पिछला शोध कर रहा हूं। स्टैक ओवरव्लो से संबंधित कुछ स्पष्टीकरण यहां दिए गए हैं, हालांकि सुझाए गए समाधान काफी असंबद्ध हैं।विशेषताइंटर: 'मॉड्यूल' ऑब्जेक्ट में कोई विशेषता नहीं है 'maketrans'

जब मैं gi.repository से जीटीके आयात करने का प्रयास है, यह निम्न उत्पादन के साथ दुर्घटनाओं:
bash-4.2$ python3 Python 3.2 (r32:88445, Feb 21 2011, 21:11:06) [GCC 4.6.0 20110212 (Red Hat 4.6.0-0.7)] on linux2 Type "help", "copyright", "credits" or "license" for more information.

>>> from gi.repository import Gtk 

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "/usr/lib64/python3.2/site-packages/gi/importer.py", line 76, in load_module 
dynamic_module._load() 
File "/usr/lib64/python3.2/site-packages/gi/module.py", line 251, in _load 
overrides_modules = __import__('gi.overrides', fromlist=[self._namespace]) 
File "/usr/lib64/python3.2/site-packages/gi/overrides/Gtk.py", line 400, in <module> 
class MessageDialog(Gtk.MessageDialog, Dialog): 
File "/usr/lib64/python3.2/site-packages/gi/overrides/Gtk.py", line 404, in 
MessageDialog 
type=Gtk.MessageType.INFO, 
File "/usr/lib64/python3.2/site-packages/gi/module.py", line 127, in __getattr__ 
ascii_upper_trans = string.maketrans(
AttributeError: 'module' object has no attribute 'maketrans' 

चूंकि यह सीधे अजगर कंसोल से और नहीं मैं एक अजगर फ़ाइल स्क्रिप्ट पर कार्य डॉन द्वारा एक आयात है इस बात को संभालने के लिए कोई सुराग भी नहीं है।

+1

यह आपके 'string.maketrans' के रूप में अजगर 3 के साथ एक अजगर 2 मॉड्यूल आयात करने लगता है अजगर 3 –

उत्तर

10

ठीक है, मैं इसे काम करने में कामयाब रहा। बावजूद एक गंदा समाधान नहीं है:

मैं /usr/lib64/python3.2/site-packages/gi/module.py

संशोधित लाइन 127 में मैं str.maketrans साथ string.maketrans प्रतिस्थापित तो यह अजगर 3 डॉक्स के अनुरूप है।

मेरी परिस्थितियों में किसी के लिए सहायक होने की उम्मीद है।

ह्यूगो

3

यह एक ज्ञात बग bug737375 हो रहा है और यह तय किया गया था (लगभग ह्यूगो खुद समाधान की तरह)।

आप pygopbject भंडार यहाँ के मालिक शाखा में ठीक पा सकते हैं:
http://git.gnome.org/browse/pygobject/commit/?id=8f89ff24fcac627ce15ca93038711fded1a7c5ed

वैसे भी मैं यहाँ फिर से लिखने करेंगे क्या है अंतर में है, तो शायद मैं आप कुछ समय बचा सकते हैं :)

फ़ाइल से: /usr/lib64/python3.2/site-packages/gi/module.py

आप बदलना चाहिए:

import string 

साथ:

try: 
    maketrans = ''.maketrans 
except AttributeError: 
    # fallback for Python 2 
    from string import maketrans 

और फिर (लाइन 130 के आसपास) की जगह:

साथ
ascii_upper_trans = string.maketrans(

:

ascii_upper_trans = maketrans(
+0

में अनुपस्थित यह सही है समाधान, दुर्भाग्य से, समाधान। धन्यवाद। – leetNightshade

+0

जब मैंने आयात करने की कोशिश की तो मुझे यही मिला। स्ट्रिंग आयात maketrans से आयात त्रुटि: नाम 'maketrans' आयात नहीं कर सकता –

1

मैं Jupyter नोटबुक का उपयोग कर string.maketrans को चलाने के लिए कोशिश कर रहा था और यह त्रुटि संदेश:

the module string has no attribute maketrans.

कोड को str.maketrans पर बदलना चाल है। हालांकि यह नोट किया जाना चाहिए कि मैं कोई भी परिवर्तन करने के लिए नहीं था:

/usr/lib64/python3.2/site-packages/gi/module.py 
संबंधित मुद्दे

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