我之前已经做了一些关于这个错误的研究。这里有一些与StackOverflow相关的解释,虽然建议的解决方案是相当无关的。
当我尝试从gi.repository导入Gtk时,它崩溃了,输出如下:
`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'
因为这是直接从python控制台导入,而不是通过执行python文件脚本,所以我甚至不知道如何处理它。
发布于 2011-07-12 00:45:28
好的,我设法让它工作了。尽管是一种肮脏的解决方法:
我修改了/usr/lib64/python3.2/site-packages/gi/module.py
在第127行,我用str.maketrans
替换了string.maketrans
,这样它就符合Python3文档。
希望对我这种情况下的任何人有所帮助。
雨果
发布于 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
您应该替换:
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(
https://stackoverflow.com/questions/6628306
复制相似问题