15 скриптов Python в один исполняемый файл?

Я весь день возился с решениями отсюда и отсюда:

как бы я объединил несколько .py файлы в один .exe с Py2Exe

упаковка нескольких сценариев в PyInstaller

но это не совсем работает так, как я думал.

У меня есть программа, над которой я работал в течение последних 6 месяцев, и я только что получил одну из ее функций другому разработчику, который сделал свою работу в Питон.

что я хотел бы сделать, это использовать его Скрипты, не заставляя пользователя скачать и установить Python.

проблема, как я вижу, заключается в том, что 1 скрипт python вызывает другие 14 скриптов python для различных задач.

Итак, я спрашиваю, Какой лучший способ сделать это?

можно ли упаковать 15 скриптов и все их зависимости в 1 exe, который я могу вызвать нормально? или есть другой способ, которым я могу упаковать инициал скрипт в exe и что exe может вызвать .py скрипты нормально? или я должен просто сказать f ' it и включить установщик python с моим файлом установки?

Это для Python 2.7.6 btw

и именно так исходный скрипт вызывает другие скрипты.

import printSub as ps
import arrayWorker as aw
import arrayBuilder as ab
import rootWorker as rw
import validateData as vd
etc...

Если бы вы пытались включить эти сценарии, как бы вы это сделали?

спасибо

2 ответов


вы действительно можете использовать py2exe, он ведет себя так, как вы хотите.

см. ответ на упомянутый вопрос: как бы я объединил несколько .py файлы в один .exe с Py2Exe

обычно py2exe связывает ваш основной скрипт в exe-файл и все ваши зависимые скрипты (он анализирует ваш импорт и находит все необходимые файлы python) в zip-файл библиотеки (только файлы pyc). Также он собирает зависимые библиотеки DLL и копирует их в дистрибутив каталог, чтобы вы могли распространять весь каталог, и пользователь может запускать exe-файл из этого каталога. Преимущество заключается в том, что у вас может быть большое количество скриптов - меньших exe - файлов-для использования одного большого zip-файла библиотеки и DLL.

кроме того, вы можете настроить py2exe для связывания всех ваших сценариев и требований к 1 автономному exe-файлу. Exe-файл состоит из основного скрипта, зависимых файлов python и всех DLL. Я использую эти параметры в setup.py выполнить это:

setup( 
  ...
  options = {         
    'py2exe' : {
        'compressed': 2, 
        'optimize': 2,
        'bundle_files': 1,
        'excludes': excludes}
        },                   
  zipfile=None, 
  console = ["your_main_script.py"],
  ...
)

рабочий код:

from distutils.core import setup
import py2exe, sys, os

sys.argv.append('py2exe')
setup( 
  options = {         
    'py2exe' : {
        'compressed': 1, 
        'optimize': 2,
        'bundle_files': 3, #Options 1 & 2 do not work on a 64bit system
        'dist_dir': 'dist',  # Put .exe in dist/
        'xref': False,
        'skip_archive': False,
        'ascii': False,
        }
        },                   
  zipfile=None, 
  console = ['thisProject.py'],
)

следовать setup.py (в исходном реж.):

from distutils.core import setup
import py2exe

setup(console = ['multiple.py'])

а затем работает как:

  python setup.py py2exe

отлично работает для меня. Мне не нужно было давать какие-либо другие варианты, чтобы заставить его работать с несколькими сценариями.