Как я могу распространять программы python?

Мое приложение выглядит так:

 main.py
 окна /
     __init__.py
     mainwindow.py
     ...
 модель/
     __init__.py
     orders.py
     ...
 Ресурсы/
     image1.png
     logo.jpg
     ...

Программа запускается с main.py. Есть ли хороший способ создать из него «окончательное» приложение? Я думаю о чем-то вроде py2exe / py2app, но не копируя интерпретатор / модули python в приложение, в котором есть только один исполняемый файл.

Я посмотрел на distutils, но похоже, что он устанавливает программу в каталог Python, что не является обычным явлением на платформах, отличных от Linux.

На данный момент я просто main.pyw всю исходную папку на целевую машину и создаю псевдоним для main.pyw на окнах. Некоторые неудобства:

  • Значок – значок питона по умолчанию.
  • Мне нужно создать псевдоним вручную.
  • В моем исходном каталоге есть много дополнительных файлов, таких как папка с исходным кодом.
  • Мне нужно переименовать main.py в main.pyw вручную.
  • Было бы неплохо, если на целевой машине находятся только файлы .pyo *. Для этого нет никакой реальной причины, мне просто не нравятся ненужные файлы.

Как создать хороший автоматический дистрибутив?

  • для окон? (Это единственная платформа, на которой я должен сейчас поддерживать).
  • для mac?
  • для linux?

  • Перемещение холста tkinter с помощью мыши
  • TensorFlow: «Попытка использовать неинициализированное значение» в переменной инициализации
  • Пользовательские типы данных в массивах numpy
  • Как я могу отфильтровать дату DateTimeField в Django?
  • Мне нужно узнать об объектах, или я могу сэкономить время и просто изучить словари?
  • Как найти путь с максимальной суммой в взвешенном сетевом графике?
  • Как подклассы подкласса numpy.ndarray
  • Pyplot: использование процента по оси x
  • 5 Solutions collect form web for “Как я могу распространять программы python?”

    Обычный способ распространения приложений Python – с distutils . Это сделано как для распространения библиотек типа python-модулей, так и для приложений python, хотя я не знаю, как это работает в Windows. В Windows вам придется устанавливать Python отдельно, если вы используете distutils, в любом случае.

    Я бы рекомендовал вам распространять его с disutils для Linux, Py2exe или что-то подобное для Windows. Для OS XI не знаю. Если это приложение для конечного пользователя, вам, вероятно, понадобится тип образа диска, я не знаю, как это сделать. Но прочитайте это сообщение, чтобы узнать больше о его опыте. Для приложения, сделанного для программистов, вы, вероятно, хорошо с установкой типа distutils на OS X.

    Я очень рекомендую Pyinstaller , который практически полностью поддерживает все основные платформы. Как и py2exe и py2app, он создает стандартный исполняемый файл в Windows и набор приложений на OS X, но также имеет смысл делать фантастическую работу по автоматическому разрешению общих зависимостей и в том числе без дополнительных настроек настройки.

    Также обратите внимание, что если вы развертываете Python 2.6 в Windows, вы должны применить этот патч к соединительной линии Pyinstaller.

    Вы указали, что вам не нужен установщик, но Inno Setup – это простой в использовании и быстрый выбор для платформы Windows.

    Fredrik squeeze.py 's squeeze.py может создать один файл, который не содержит интерпретатор Python, но вместо этого содержит байт-код. С правильными аргументами вы можете включить в файл результатов другие файлы, модули и т. Д. Я успешно использовал его в одном проекте. Результирующая программа работала на OS X, Linux и Windows без каких-либо проблем!

    PS : У каждой машины должен быть интерпретатор Python, который совместим с байт-кодом, сгенерированным командой squeeze.py. Вы можете создавать разные версии байт-кода для разных версий Python, если это необходимо (просто запустите squeeze.py с правильной версией Python).

    Возможно, я ошибаюсь, но у IronPython нет встроенного компилятора для окон?

    http://www.ironpython.net

    [РЕДАКТИРОВАТЬ]

    Попробуйте Cx_Freeze, безусловно лучший из .py в .exe (плюс несколько .dlls) компилятор, который я когда-либо использовал.

    http://cx-freeze.sourceforge.net/

    Если вы распространяете на Windows, используйте установщик для установки всех необходимых файлов / интерпретаторов независимо от того, что необходимо. Распределите файл setup.exe. Это лучший способ для окон. В противном случае пользователи будут жаловаться.

    Python - лучший язык программирования в мире.