2016-01-25 3 views
1

Я генерирую приложение без проблем с py2exe. Но тогда, когда я исполняю EXE-файл, он бросает следующий отслеживающий:ошибка py2exe и moviepy

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 
       } 
      }, 
    ) 
+0

Не называй любую команду (exe_maker) на директории пакета (так C: \ pythonXX и т.д.). Скопируйте свои модули в 'site-packages', если вы хотите без проблем использовать свой модуль (Currient_Directory не равен Base_Directory) – dsgdfg

ответ

0

Существует ошибка атрибута в строке 'includes': ['sip', 'moviepy'],, может быть, попробовать cx_freeze .py на .exe конвертер.

+0

Я думаю, что ошибка не в' setup.py', а в основном скрипте, когда она импортируется ' moviepy'. Я сказал, что приложение генерируется без проблем, но когда я запускаю .exe, он выдает ошибку. – DavidRguez

0

videopy делает много динамического импорта с exec, который отправляет py2exe. Я решил проблему вручную скопировать весь модуль moviepy в папку сборки:

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)) 
Смежные вопросы