2

プロジェクトを Windows 用にコンパイルしようとしています。Windows 2008 32ビットを使用しています。

問題なくコンパイルされますが、EXE を開こうとすると、cefpython_27 をインポートできないと表示されます。問題は、サイト パッケージ内の cefpython の次のファイルにあります: ( init .py)

import sys

if 0x02070000 <= sys.hexversion < 0x03000000:
    from . import cefpython_py27 as cefpython
elif 0x03000000 <= sys.hexversion < 0x04000000:
    from . import cefpython_py32 as cefpython
else:
    raise Exception("Unsupported python version: " + sys.version)

__version__ = "27.3"
__author__ = "The CEF Python authors"

問題は次の行にあると思われます。

from . import cefpython_py27 as cefpython

そのパスはEXEファイルに対して相対的ではないためです。

これをどのようにインポートすればよいですか?

これは私の setup.py ファイルです:

from distutils.core import setup
import py2exe, os

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]),
        ]
    print data_files
    return data_files
setup(
    console=['videoinbox.py'],
    data_files = get_data_files()
)

これはEXEを開こうとしているエラーです:

Traceback (most recent call last):
  File "videoinbox.py", line 41, in <module>
    from cefpython3 import cefpython
  File "cefpython3\__init__.pyc", line 4, in <module>
ImportError: cannot import name cefpython_py27

アップデート

だから私はlibrary.zipファイルを見て、cefpython3ディレクトリの中を見ました。init .py ファイルしかありません。これが文句を言う理由に違いありません。次に、そのファイルをビルドしようとしましたが、不平を言ったので、ファイル [cefpython_py27.pyd, icudt.dll] を同じディレクトリに追加し、手動で呼び出すと実行されました。

py2exeのビルドからこれを含める方法がわかりませんか?しかし、これをzipファイルに追加しても、見つからないと言われます。zip を解凍して python init .py を実行しても動作します!

4

0 に答える 0