AttributeError:'module'对象没有'printable'属性

3 投票
2 回答
3597 浏览
提问于 2025-04-15 19:15

我遇到了这个问题。
有没有什么想法可以帮我解决?

from OpenGL.raw.GLUT import *
      File "/usr/lib/python2.6/site-packages/OpenGL/raw/GLUT/__init__.py", line 6, in <module>
        from OpenGL.raw.GLUT.constants import *
      File "/usr/lib/python2.6/site-packages/OpenGL/raw/GLUT/constants.py", line 7, in <module>
        from OpenGL import platform, arrays
      File "/usr/lib/python2.6/site-packages/OpenGL/platform/__init__.py", line 36, in <module>
        _load()
      File "/usr/lib/python2.6/site-packages/OpenGL/platform/__init__.py", line 27, in _load
        plugin_class = plugin.load()
      File "/usr/lib/python2.6/site-packages/OpenGL/plugins.py", line 14, in load
        return importByName( self.import_path )
      File "/usr/lib/python2.6/site-packages/OpenGL/plugins.py", line 28, in importByName
        module = __import__( ".".join(moduleName), {}, {}, moduleName)
      File "/usr/lib/python2.6/site-packages/OpenGL/platform/glx.py", line 3, in <module>
        from OpenGL.platform import baseplatform, ctypesloader
      File "/usr/lib/python2.6/site-packages/OpenGL/platform/baseplatform.py", line 4, in <module>
        from OpenGL.platform import ctypesloader
      File "/usr/lib/python2.6/site-packages/OpenGL/platform/ctypesloader.py", line 6, in <module>
        import ctypes, logging, os
      File "/usr/lib/python2.6/logging/__init__.py", line 31, in <module>
        import sys, os, types, time, string, cStringIO, traceback
      File "string.py", line 3, in <module>
        chars=set(string.printable),
    AttributeError: 'module' object has no attribute 'printable'

2 个回答

0

我遇到了完全一样的问题,不过是在不同的情况下。

我在 VirtualBox 上设置了一个 Ubuntu 虚拟机。我在一个虚拟机和 Windows 主机之间共享的文件夹里写了一些 Python 代码。(这个共享文件夹是 VirtualBox 的一个功能)

我遇到麻烦的原因是:

Windows 的文件名不区分大小写。而我恰好有一个叫 String.py 的文件,它被转换成了 string.pyc,并且存储在我的 Windows 共享文件夹里。这就和 Python 内置的 “string.py” 模块冲突了。

解决办法:

把整个 Python 代码复制到虚拟机里,然后就在那儿工作。

4

你在当前文件夹里有一个叫做 string.py 的文件。这个文件和标准库里同名的模块发生了冲突。你需要把这个 .py 文件改个名字,然后把生成的 string.pyc 文件删掉。

撰写回答