cx_Freeze не может собрать MSI с пандами - PullRequest
0 голосов
/ 22 февраля 2019

Привет У меня есть следующий файл cx_Freeze setup.py для приложения, использующего модуль pandas.Когда я генерирую msi, я сталкиваюсь с проблемами.Я искал во всем Google для этого, но ни один из них не работает для меня.

include-files = ['aardvark.dll'] 
includes = []
excludes = []

base = "Win32GUI"
exe = Executable( 
    script="test.py",
    initScript=None,
    base=base,
    targetName="test.exe",
    copyDependentFiles=True,
    compress=False,
    appendScriptToExe=False,
    appendScriptToLibrary=False,
    shortcutDir="MyProgramMenu",
    shortcutName=APP_NAME)
bdist_msi_options = {
    "upgrade_code": UPGRADE_CODE,
    "add_to_path" : False}
setup( 
    name=APP_NAME,  
    version=VERSION,
    author="sri",
    description='test Tool',
    options={"build_exe": {"excludes":excludes,
    "includes":includes,
    "include_files":includefiles},
    "bdist_msi" : bdist_msi_option},
    executables=[exe])

Когда я строю msi с cx_Freeze==4.3.4, это выдает эту ошибку:

cx_Freeze.freezer.ConfigError: нет файла с именем sys (для модуля collection.sys)

, и когда я использую cx_Freeze >= 5.0.0, создается msi, но после установки это дает

ImportError: Отсутствуют необходимые зависимости ['numpy']

enter image description here

Я перепробовал все доступные переполнения стека, но ни одна из нихработает, любое предложение будет большой помощью, спасибо заранее.

1 Ответ

0 голосов
/ 22 февраля 2019

pandas зависит от numpy, и вам необходимо явно добавить numpy в список packages параметров build_exe, чтобы cx_Freeze правильно включал numpy, см. Создание cx_Freezeexe с Numpy для Python

Попробуйте добавить следующее в скрипт установки

packages = ['numpy']

и изменить options в соответствии с

options={"build_exe": {"excludes":excludes,
                       "includes":includes,
                       "include_files":includefiles,
                       "packages":packages},
         "bdist_msi" : bdist_msi_option},
...