1

py2exe で問題なくアプリケーションを生成します。しかし、その後、.exe を実行すると、次のトレースバックがスローされます。

Traceback (most recent call last):
  File "editor.py", line 25, in <module>
  File "moviepy\editor.pyo", line 72, in <module>

  File "<string>", line 1, in <module>
AttributeError: 'module' object has no attribute 'audio_fadein'

以前はpy2exeを使用して成功しましたが、今はmoviepyを使用していますが、動作しません。これは私のsetup.pyです。実行してもエラーはありませんpython setup.py py2exe

from distutils.core import setup
from py2exe.build_exe import py2exe
import os
from distutils.filelist import findall
import matplotlib

datafiles = ['logo.png', 'Lower Brand.png', "icon.ico"]

matplotlibdatadir = matplotlib.get_data_path()
matplotlibdata = findall(matplotlibdatadir)
matplotlibdata_files = []

for f in matplotlibdata:
    dirname = os.path.join('matplotlibdata', f[len(matplotlibdatadir)+1:])
    matplotlibdata_files.append((os.path.split(dirname)[0], [f]))

mpl = matplotlib.get_py2exe_datafiles()
datafiles.extend(mpl)


setup(
    name='VTE',
    description="Video Test Editor",
    version="1.0",
    author="David Rodriguez",


    data_files=datafiles,

    console=[
        {
            'script':'videoeditor.py',
            'icon_resources': [(1, r"icon.ico")]
        }
    ],
    options={ 'py2exe': {
                'skip_archive':True,
                'includes': ['sip', 'moviepy'],
                'excludes': ['_gtkagg', '_tkagg', '_ssl'],
                'optimize': 2,
                'unbuffered': True
                }
            },
    )
4

2 に答える 2

1

moviepy は で多くの動的インポートを行いexec、py2exe をつまずかせます。moviepy モジュール全体を build フォルダーに手動でコピーして、問題を解決しました。

import moviepy
from pathlib import Path
import shutil

moviepy_path= Path(moviepy.__file__).parent
target_path= Path(sys.argv[0]).parent / 'build' / 'exe.win32-3.4' / 'moviepy'
shutil.rmtree(str(target_path))
shutil.copytree(str(moviepy_path), str(target_path))
于 2017-03-13T14:27:57.523 に答える