Cx_Freeze и youtube_dl отсутствуют модули Windows

Я использую Cx_Freeze для создания исполняемого файла из скрипта Python (только один файл: mp3InThePocket.py) на Windows 10. Все работало, когда я попробовал это на Ubuntu. При использовании Windows возникло много проблем. Мне удалось решить их множество, но я сталкиваюсь с последним: кажется, что при сборке с Cx_Freeze отсутствуют модули. Мой setup.py:

#!/usr/bin/python
# -*- coding: utf-8 -*-
# Python 3

import sys, os
from cx_Freeze import setup, Executable

includes = ["youtube_dl", "urllib", "os", "sys", "time", "re"]
excludes = []
packages = []
path = []


exe = Executable(
    script="mp3InThePocket.py",
    icon="./icone.ico",
)


setup(
    name="mp3InThePocket",
    version="1.00",
    description="",
    author="LDV",
    options = {"build_exe": {"includes": includes,
             "excludes": excludes,
             "packages": packages,
             "path": path
             }
       },
    executables=[exe]
)

Вот что я получаю при сборке:

Missing modules:                                                                                 
? BaseHTTPServer imported from youtube_dl.compat                                                 
? Cookie imported from youtube_dl.compat                                                         
? Crypto.Cipher imported from youtube_dl.downloader.hls                                          
? HTMLParser imported from youtube_dl.compat                                                     
? __main__ imported from bdb, pdb                                                                
? _dummy_threading imported from dummy_threading                                                 
? _frozen_importlib imported from importlib, importlib.abc                                       
? _frozen_importlib_external imported from importlib, importlib._bootstrap, 
importlib.abc        ? _posixsubprocess imported from subprocess                                                      
? _scproxy imported from urllib.request                                                          
? ce imported from os                                                                            
? cookielib imported from youtube_dl.compat                                                      
? fcntl imported from pty, youtube_dl.utils                                                      
? future_builtins imported from youtube_dl.compat                                                
? grp imported from shutil, tarfile                                                              
? htmlentitydefs imported from youtube_dl.compat                                                 
? httplib imported from youtube_dl.compat                                                        
? java.lang imported from platform                                                               
? netbios imported from uuid                                                                     
? org.python.core imported from copy
....                                                             

This is not necessarily a problem - the modules may not be needed on this platform.  

Странно то, что исполняемый файл работает нормально при запуске из консоли, а не при нажатии на него. (ошибка возникает с youtube_dl, из-за, я думаю, этих отсутствующих зависимостей)

Сама программа работает нормально при запуске самостоятельно (до сборки с помощью cx_freeze) с Python.

Еще одна вещь, которую нужно знать, это то, что мне нужно было указать переменную PATH для ffmpeg (которую я скачал отдельно) в переменных env Windows, чтобы youtube_dl работал с оригинальным скриптом python.

Я установил Cx Freeze из исходного каталога (клонирование из github и установка)

Спасибо за помощь!

0 ответов

Другие вопросы по тегам