Короткий ответ - нет.
В идеале вы должны отправить пакет Python с установочным сценарием, который проверит систему пользователя на наличие необходимых зависимостей, или, как минимум, документ, подтверждающий, как конечный пользователь может установитьзависимости, где их найти и почему они должны это делать.
Если я создаю такое приложение, могу ли я включить в него ImageMagick, когда я собираюсь сделать исполняемый файл из 1 файла для распространения или продажи?
Большинство зависимостей являются библиотеками(общий или статический), поэтому как минимум ваш «1 исполняемый файл» должен будет ссылаться на дополнительные файлы, которые вы будете распространять вместе с кодом Python. Это также сделало бы вас дистрибьютором смешанных лицензий на программное обеспечение, и вам необходимо было бы прочитать и выполнить соответствующие требования для каждой зависимой библиотеки.
Позволяет ли py2exe или pyinstaller включать ImageMagick (и ffmpeg в этом отношении))?
Они будут включать соответствующие файлы DLL для распространения, но не делегаты, используемые ImageMagick. Я думаю, что есть «портативная» версия ImageMagick, которая скомпилирована со статическими библиотеками и общими делегатами (включая ffmpeg). После В качестве примера приведем DLL-библиотеку времени выполнения Microsoft Visual C . Я предполагаю, что установка будет выглядеть следующим образом ...
from glob import glob
data_files = [("ImageMagick.CRT", glob(r'C:\path\to\ImageMagick-7.0.8-67-portable-Q16-x86\*.*'))]
setup(
data_files=data_files,
)
И использовать подпроцесс для вызова magick.exe
в распределенном каталоге "ImageMagick.CRT".
[. ..] Мне интересно, стоит ли тратить время и усилия на создание графического приложения на python [...]
Все это сводится к тому, что вы пытаетесь достичь. OpenCV & Pillow могут быть перечислены как зависимости в ваших приложениях setup.py
, и установщик Python / Pip справится с этим. Однако ImageMagick и FFMPEG - это больше платформ (если не экосистем) с собственным уровнем настройки и расширений.