1

我有这个 pyopengl 应用程序,我正在尝试用 bbfreeze 冻结它。不幸的是,当我运行冻结的应用程序时,它会出现以下错误:

Traceback (most recent call last):
  File "<string>", line 6, in <module>
  File "__main__.py", line 128, in <module>
  File "__main__client__.py", line 11, in <module>
  File "ui.py", line 15, in <module>
  File "OpenGL/GLUT/__init__.py", line 2, in <module>
  File "OpenGL/raw/GLUT/__init__.py", line 6, in <module>
  File "OpenGL/raw/GLUT/constants.py", line 7, in <module>
  File "OpenGL/platform/__init__.py", line 36, in <module>
  File "OpenGL/platform/__init__.py", line 27, in _load
  File "OpenGL/plugins.py", line 14, in load
  File "OpenGL/plugins.py", line 28, in importByName
ImportError: No module named glx

这是必需的版本信息:

Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import OpenGL
>>> OpenGL.__version__
'3.0.1b2'
>>> import bbfreeze
>>> bbfreeze.version
(0, 97, 3)

我试图在我冻结它的同一台机器上运行它,并且未冻结的应用程序在该机器上运行良好。

有没有人设法完成这项工作?或者也许提供一些调试指导?

4

2 回答 2

3

尝试将“OpenGL.platform.glx”显式添加到冻结中包含的模块列表中。我认为 bbfreeze 选项“包含”是您想要的。

更新: 看看 PyInstaller 的做法:http: //www.pyinstaller.org/browser/trunk/PyInstaller/hooks/hook-OpenGL.py

您可能需要将所有这些模块添加到您的包含列表中。

于 2011-05-02T02:30:48.000 回答
0

在阅读文档之前,我也面临着同样的挑战,该文档指出:

 bbfreeze has been tested with python 2.4, 2.5 and 2.6. bbfreeze will not work with python versions prior to 2.3 as it uses the zipimport feature introduced with python 2.3.

所以我认为最好的办法是使用提到的python版本!希望这可以帮助!

于 2019-04-23T01:50:17.597 回答