Cefpython script compiled to exe fails to run

489 Views Asked by At

I used cx_Freeze to compile a cefpython3 script to the running application. It runs but fails with the following debug information:

[1127/050154:FATAL:content_main_runner.cc(720)] Check failed: base::i18n::InitializeICU(). 

This is my setup file:

def get_cefpython_path():
from cefpython3 import 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/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

from cx_Freeze import setup, Executable
cefp = get_cefpython_path()
includes = ["json", "lxml", "lxml._elementpath", "lxml.etree", "gzip"]
copyDependentFiles=True
setup(
    data_files = get_data_files(),
    name = "Name",
    options = {"build_exe": {"includes": includes}},
    executables = [Executable("script.pyw", base = "Win32GUI")])

I found out here https://github.com/rogerwang/node-webkit/issues/2126 that this error indicates that file icudt.dat is missing. I have icudt.dll in my application directory (cx_Freeze included it in the folder itself). But I don't have icudt.dat file anywhere in cefpython package. So I have no idea what is missing. And I don't understand the semantics of the error. Thanks for any responses!

0

There are 0 best solutions below