Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyOpenGL在使用cx\U冻结后引发异常?_Python_Cx Freeze_Pyopengl - Fatal编程技术网

Python PyOpenGL在使用cx\U冻结后引发异常?

Python PyOpenGL在使用cx\U冻结后引发异常?,python,cx-freeze,pyopengl,Python,Cx Freeze,Pyopengl,我正在用PyOpenGL制作一个游戏,想用cx\u冻结它。但在我看来,导入PyOpenGL会在PyOpenGL模块中引发异常 从OpenGL.GL导入* 运行冻结脚本时: Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/cx_Freeze/initscripts/__startup__.py", lin

我正在用PyOpenGL制作一个游戏,想用cx\u冻结它。但在我看来,导入PyOpenGL会在PyOpenGL模块中引发异常

从OpenGL.GL导入*
运行冻结脚本时:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/cx_Freeze/initscripts/__startup__.py", line 14, in run
    module.run()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/cx_Freeze/initscripts/Console.py", line 26, in run
    exec(code, m.__dict__)
  File "/Users/noah/Desktop/DesktopNoah/cx_freeze/PhW.py", line 5, in <module>
    from OpenGL.GL import *
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/OpenGL/GL/__init__.py", line 3, in <module>
    from OpenGL import error as _error
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/OpenGL/error.py", line 12, in <module>
    from OpenGL import platform, _configflags
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/OpenGL/platform/__init__.py", line 35, in <module>
    _load()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/OpenGL/platform/__init__.py", line 29, in _load
    plugin = plugin_class()
TypeError: 'NoneType' object is not callable
以及平台插件功能:

class PlatformPlugin( Plugin ):
    """Platform-level plugin registration"""
    registry = []
    @classmethod
    def match( cls, key ):
        """Determine what platform module to load

        key -- (sys.platform,os.name) key to load 
        """
        for possible in key:
            # prefer sys.platform, *then* os.name
            for plugin in cls.registry:
                if plugin.name == possible:
                    return plugin
        raise KeyError( """No platform plugin registered for %s"""%(key,))
尝试将
“OpenGL”
添加到
setup.py
脚本中
build\u exe\u选项的
包列表中:

build_exe_options={“packages”:[“OpenGL”]}
# ...
安装程序(名称=…,#完成!
...
选项={“build_exe”:build_exe_options},
可执行文件=[可执行文件(…)])

有关更多详细信息,请参阅cx_冻结。

我做了
includes=[“OpenGL”]
选项={“build_exe”:{“includes”:includes}
。这样行吗?谢谢!我使用了
包含
而不是
。现在它成功了。
class PlatformPlugin( Plugin ):
    """Platform-level plugin registration"""
    registry = []
    @classmethod
    def match( cls, key ):
        """Determine what platform module to load

        key -- (sys.platform,os.name) key to load 
        """
        for possible in key:
            # prefer sys.platform, *then* os.name
            for plugin in cls.registry:
                if plugin.name == possible:
                    return plugin
        raise KeyError( """No platform plugin registered for %s"""%(key,))