Мобильный PyQt5

от автора

У Python, установленного (а точнее просто распакованного из msi) на флэшку, есть как плюсы, так и минусы, один из последних — некоторые модули, как, например, PyQt. На вкус и цвет, а фломастеры, как говорится, у всех разные, так что если кто-то предпочитает wxPython, тому и флаг в руки. Лично мне нравится PyQt, а вот как его развернуть на флэшке — другой вопрос. Первое, что приходит на ум — собрать из исходников, что накладно по времени, а значит критично в плане если библиотека нужна уже вот-вот. Остается NSIS’ьный инсталлятор, который, во-первых, лапает реестр за интимные места вроде HKEY_CURRENT_USER\Environment, во-вторых, что логично, должен будет создать деинсталлятор (NSIS’ька обычно создает деинсталляторы в папке с приложением, но все же закладываться на это не стоит), — оно нам надо?

В Far есть замечательный плагин arclite, позволяющий просматривать содержание не только архивов, но и некоторых типов инсталляторов, среди которых есть и NSIS’ька. Если открыть инсталлятор PyQt arclite’ом, нашему взору предстанет примерно такая картина.

.. $PLUGINSDIR Lib [LICENSE].txt [NSIS].nsi 

Названия говорят сами за себя, так что шагаем в Lib.

.. site-packages 

Папка с таким же названием есть в %PYTHON%\Lib. Собственно, все (или почти все), что нам нужно — распаковать папку Lib из инсталлятора в папку %PYTHON%. После распаковки, чтобы все заработало, нужно сделать пару кульбитов вокруг собственной оси, а точнее в папке %PYTHON%\Lib\site-packages\PyQt5 создать файл qt.conf следующего содержания:

[Path] Prefix = . Binaries = . 

В папке %PYTHON% также нужно создать qt.conf, но с несколько отличным от предыдущего содержимым:

[Path] Prefix = Lib/site-packages/PyQt5 Binaries = Lib/site-packages/PyQt5 

Остается проверить на работоспособность.

>>> from sys import argv, exit >>> from PyQt5.QtWidgets import QApplication, QWidget >>> app = QApplication(argv) >>> win = QWidget() >>> win.resize(300, 200) >>> win.setWindowTitle('Test') >>> win.show() >>> exit() 

Такие вот коврижки.

ссылка на оригинал статьи http://habrahabr.ru/post/255541/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *