プロジェクトを 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 を実行しても動作します!