首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将cefpython编译为exe

如何将cefpython编译为exe
EN

Stack Overflow用户
提问于 2013-03-27 20:17:18
回答 4查看 3.2K关注 0票数 3

我正在使用头孢cefpython创建一个简单的基于HTML5的应用程序。我使用Python和pywin32绘制一个简单的窗口并在那里呈现框架。

我想把我的.py编译成一个.exe,但是我不知道怎么做。我试过使用py2exe,但是当我运行结果时,会得到一个错误

代码语言:javascript
复制
Traceback (most recent call last):
  File "myApp.py", line 19, in <module>
  File "cefpython1\__init__.pyc", line 4, in <module>
ImportError: cannot import name cefpython_py27

我试图在分发目录中复制cefpython_py27.pyd,但似乎没有效果。

有谁可以帮我?这真的可以吗?

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-21 09:32:24

最后,我完成了以下步骤(我使用python2.7):我导入了cefpython,如下所示:

从cefpython1导入cefpython_py27作为cefpython

我的py2exe抱怨python32.dll找不到,因为im和cba处理__ini__文件并搜索它的导入位置--我只是在安装文件中的选项中将python32.dll添加到dll_excludes中。在py2exe完成之后,我还不得不手动将这些文件夹和文件复制到我的dist文件夹中:

代码语言:javascript
复制
- C:\Python27(your python path)\Lib\site-packages\cefpython1\locales - whole folder
- C:\Python27(your python path)\Lib\site-packages\cefpython1\icudt.dll

请注意,icudt.dll = 9.8MB,libcef.dll = 24.3MB,所以不要期望较小的dist文件夹大小。

票数 4
EN

Stack Overflow用户

发布于 2013-08-12 00:54:04

扩展hidetr的答案,将类似这样的内容添加到setup.py中将复制所需的文件:

代码语言:javascript
复制
def get_cefpython_path():
    import cefpython1 as cefpython

    path = os.path.dirname(cefpython.__file__)
    return "%s%s" % (path, os.sep)

def get_data_files():
    cefp = get_cefpython_path()
    data_files = [('', ['%s/icudt.dll' % cefp,
          '%s/d3dcompiler_43.dll' % cefp,
          '%s/d3dx9_43.dll' % cefp,
          '%s/devtools_resources.pak' % cefp,
          '%s/ffmpegsumo.dll' % cefp,
          '%s/libEGL.dll' % cefp,
          '%s/libGLESv2.dll' % cefp,
          '%s/Microsoft.VC90.CRT.manifest' % cefp,
          '%s/msvcm90.dll' % cefp,
          '%s/msvcp90.dll' % cefp,
          '%s/msvcr90.dll' % cefp]),
        ('locales', ['%s/locales/en-US.pak' % cefp]),
        ]
    return data_files

setup(
    data_file = get_data_files()
    ...
票数 4
EN

Stack Overflow用户

发布于 2014-08-24 11:43:07

下面是我在Python2.7 Win32中所做的工作。我使用了cefpython示例文件夹中的cefsimple.py示例进行演示。此示例需要win32gui模块才能工作,因此请先安装此模块。

  • 下载并安装了cefpython1填充。
  • 将cefsimple.html、cefsimple.py、cefwindow.py和icon.ico从cefpython的示例目录复制到单独的目录中,并修改cefsimple.py以简单地将cefpython导入为from cefpython1 import cefpython。基于__file__的模块检测在py2exe内部不起作用,并导致错误,所以我删除了它(也许有更好的方法)。
  • 在包含复制的上述文件的文件夹中创建以下setup.py:
代码语言:javascript
复制
    from setuptools import setup
    import py2exe
    import os

    def get_cefpython_path():
        import cefpython1 as cefpython

        path = os.path.dirname(cefpython.__file__)
        return "%s%s" % (path, os.sep)

    def get_data_files():
        cefp = get_cefpython_path()
        data_files = [('', [
              '%s/icudt.dll' % cefp,
              '%s/d3dcompiler_43.dll' % cefp,
              '%s/d3dx9_43.dll' % cefp,
              '%s/devtools_resources.pak' % cefp,
              '%s/ffmpegsumo.dll' % cefp,
              '%s/libEGL.dll' % cefp,
              '%s/libGLESv2.dll' % cefp,
              '%s/Microsoft.VC90.CRT.manifest' % cefp,
              '%s/msvcm90.dll' % cefp,
              '%s/msvcp90.dll' % cefp,
              '%s/msvcr90.dll' % cefp,
              'icon.ico', 'cefsimple.html']),
            ('locales', ['%s/locales/en-US.pak' % cefp]),
            ]
        return data_files

    setup(
        data_files = get_data_files(),
        windows=['cefsimple.py'],
        options={
            "py2exe": {
                "includes": ["json", "urllib"]
            }
        }
    )
  • 然后只需在目录中运行py2exe,如下所示:python setup.py py2exe
  • 现在可以使用dist/cefsimple.exe运行生成的应用程序。

您可以获得这个示例从我的谷歌硬盘的文件。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15668568

复制
相关文章

相似问题

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