首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >AttributeError:“”module“”对象没有属性“”maketrans“”

AttributeError:“”module“”对象没有属性“”maketrans“”
EN

Stack Overflow用户
提问于 2011-07-09 01:46:27
回答 2查看 35.2K关注 0票数 21

我之前已经做了一些关于这个错误的研究。这里有一些与StackOverflow相关的解释,虽然建议的解决方案是相当无关的。

当我尝试从gi.repository导入Gtk时,它崩溃了,输出如下:

代码语言:javascript
复制
 `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.`
代码语言:javascript
复制
>>> 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' 

因为这是直接从python控制台导入,而不是通过执行python文件脚本,所以我甚至不知道如何处理它。

EN

回答 2

Stack Overflow用户

发布于 2011-07-12 00:45:28

好的,我设法让它工作了。尽管是一种肮脏的解决方法:

我修改了/usr/lib64/python3.2/site-packages/gi/module.py

在第127行,我用str.maketrans替换了string.maketrans,这样它就符合Python3文档。

希望对我这种情况下的任何人有所帮助。

雨果

票数 25
EN

Stack Overflow用户

发布于 2012-01-07 04:58:19

这似乎是一个已知的bug bug737375,它被修复了(几乎就像雨果自己的解决方案)。

您可以在pygopbject存储库的主分支中找到修复:

http://git.gnome.org/browse/pygobject/commit/?id=8f89ff24fcac627ce15ca93038711fded1a7c5ed

无论如何,我将在这里重写diff中的内容,所以也许我可以为您节省一些时间:)

来自文件:/usr/lib64/python3.2/site-packages/gi/module.py

您应该替换:

代码语言:javascript
复制
import string

通过以下方式:

代码语言:javascript
复制
try:
    maketrans = ''.maketrans
except AttributeError:
    # fallback for Python 2
    from string import maketrans

并再次替换(在第130行附近):

代码语言:javascript
复制
ascii_upper_trans = string.maketrans(

通过以下方式:

代码语言:javascript
复制
ascii_upper_trans = maketrans(
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6628306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档