Создайте автономный exe-файл Windows, для которого не требуется pythonXX.dll.

StackOverflow https://stackoverflow.com/questions/707242

  •  22-08-2019
  •  | 
  •  

Вопрос

Есть ли способ создать автономный .exe из сценария Python.Исполняемые файлы, созданные с помощью py2exe, могут работать только с pythonXX.dll.Я хотел бы получить полностью автономный .exe-файл, который не требует установки библиотеки времени выполнения Python.Это похоже на проблему с компоновкой, но вместо динамической библиотеки используется статическая, и было бы также полезно применить полосу, чтобы удалить неиспользуемые символы.

Есть идеи ?

Спасибо.

Алессандро

Это было полезно?

Решение

Вы можете сделать это в последней версии py2exe...
Просто добавьте что-то вроде кода ниже в свой setup.py файл (ключевая часть — «bundle_files»:1).

Чтобы включить пакет TkInter в установку, используйте ключ «includes».

distutils.core.setup(
      windows=[
            {'script': 'yourmodule.py',
             'icon_resources': [(1, 'moduleicon.ico')]
            }
      ],
      zipfile=None,
      options={'py2exe':{
                         'includes': ['tkinter'],
                         'bundle_files': 1
                        }
      }
  )

Другие советы

Из-за особенностей работы динамического компоновщика Windows вы не можете использовать статическую библиотеку, если используете модули Python .pyd или .dll;Библиотеки DLL, загруженные в Windows, не разделяют автоматически свое пространство символов с исполняемым файлом, поэтому для них требуется отдельная DLL, содержащая символы Python.

Если ваша цель использования одного исполняемого файла — упростить загрузку/отправку по электронной почте и т. д., я решил эту проблему, объединив выходные данные py2exe с помощью Настройка Инно.На самом деле это лучше, чем иметь один исполняемый файл, поскольку вместо предоставления исполняемого файла, который можно поместить в какой-либо каталог, хорошо работающее приложение Windows предоставляет программу удаления, отображается в апплете «Установка и удаление программ» и т. д.Inno сделает все это за вас.

Другое решение — создать один exe-файл с Python и всеми вашими зависимостями, установленными внутри него, включая python.dll.В обертке есть немного волшебства, но она просто работает.Подробности здесь:

http://code.google.com/p/pylunch/downloads/detail?name=PyLunch-0.2.pdf

Это не лучший способ сделать это, но вы можете рассмотреть возможность использования исполняемого SFX-архива с файлами .exe и .dll внутри и настроить его на выполнение вашего .exe-файла при двойном щелчке по нему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top