Ответ 1
Как объясняет kynan, чтобы получить контроль, нужно определить "установить класс", чтобы переопределить run().
Я пытаюсь упаковать сборку PyQt (установщики не предоставляются для нужной мне конфигурации), но я не могу найти какую-либо конфигурацию упаковки, которая работает. Однако проблема не связана с PyQt.
Проблема: для того, чтобы модуль работал, ему нужен файл в каталоге PREFIX python. Я понимаю, что это может быть плохая форма, но в моем случае там должен быть файл qt.conf, и я ничего не могу с этим поделать, кроме как сделать файл доступным. Мне нужно запустить post-install script, чтобы создать файл с установленным пулом PyQt. Или, по крайней мере, это похоже на лучшее решение.
Параметры, на которые я смотрел:
Я могу использовать python setup.py для установки и переопределения класса setuptools.command.install. Однако это работает, когда setup.py запускается вручную и требует разархивирования bdist и наличия приглашения cmd в папке пакета. Он не работает для bdist_wininst, bdist_msi или bdist_wheel, которые гораздо удобнее устанавливать (точка упаковки). Это возможно, но не очень хорошее решение.
bdist_wheel кажется хорошим вариантом, но он ничего не запускает после установки и помещает файлы только в определенные папки, не включая PREFIX.
bdist_wininst поддерживает пост-установку script (через --install- script при создании пакета), но не играет хорошо с virtualenv. Существует ответ qaru.site/info/4197/..., в котором предлагается запустить easy_install или преобразование колес, но эти параметры только распаковывают, они не будут запускать установку script. В противном случае вам придется изменить реестр, что не является приемлемым решением.
Что мне не хватает? Существует ли жизнеспособный вариант?
Как объясняет kynan, чтобы получить контроль, нужно определить "установить класс", чтобы переопределить run().