LINUX.ORG.RU

Создание pyqt программы

 , ,


0

1

Начал изучать PyQt, всё получается.
Но вот возник вопрос, как сделать пакет для дебиана или каким образом собрать «программу»?

Ещё один вопрос - куда положить основной скрипт .py и вообще правильное расположение для программ на питоне.



Последнее исправление: vladcraft (всего исправлений: 1)

Ответ на: комментарий от z00ke

main.py - это и есть программа, как правильно сделать пакет, при установке которого, main.py положится в нужное место и т.д.

Я только начал изучать питон. И каким образом из скрипта собирается «программа» я не нашел.

vladcraft
() автор топика
Ответ на: комментарий от vladcraft

deb это всего лишь пакет, где хранится описание, список зависимостей и ресурсы программы. Например так. Какая разница вообще из чего она состоит и на чем написана?

z00ke
()
Ответ на: комментарий от Ip0

По сути, программа, устанавливаясь, «развывается по каталогам. Только вот в какие каталоги что нужно кидать?

Сейчас я понял что в /usr/share/название_программы - само расположение программы со всеми модулями, графикой и т.д.
В /usr/share/applications - ярлык

vladcraft
() автор топика

/usr/bin/your_prog.py

А в этом скрипте импортируешь нужное.

jori
()

Вот так: http://docs.python.org/2/distutils/builtdist.html

Из коробки поддерживается rpm и другие стандартные средства. Если хочется изврата с *.deb - можешь собрать в rmp потом экспортировать в deb с помощью утилиты alien

Siado ★★★★★
()
Ответ на: комментарий от geometer

Я попробовал её использовать, но вышел казус, модули которые лежат в одной папке(самописные) вываливаются с ошибкой, что не находит модуль. Соответственно его надо куда-то положить?

vladcraft
() автор топика
Ответ на: комментарий от vladcraft

Вообще как я так понял должно быть так:
/usr/bin - .sh c вызовом «python /usr/share/прога/main.py» Там же лежит всё для программы
Ну и а так же всё остальное для создания deb. Если я не прав, исправте меня.

vladcraft
() автор топика
Ответ на: комментарий от vladcraft

Так. У тебя, на твоей машине все нормально? Все модули находит? Т.е. вот ты написал скрипт. Он запускается без проблем?

geometer
()
Последнее исправление: geometer (всего исправлений: 1)
Ответ на: комментарий от geometer

Если я запущу именно .py, НЕ прошедший через Freeze, то всё ок
Если же пропущу через Freeze, то модуль, который лежит в одной папке с «программой» - main.py, препятствует запуску программы, то есть когда пропуская, создается каталог с библиотеками и бинарник, но он не запускается. Если же я закомментирую подключение модуля, то пропуская, всё опять же создается, но теперь запускается

vladcraft
() автор топика
Ответ на: комментарий от vladcraft

С этим freeze тонкости, насколько я помню такие: все импорты модулей должны быть только в начале файла. Причем первыми из импортов обязательно должны идти: from PyQt import QtCore, QtGui (именно в таком виде - отдельной строчкой, дальше - все остальное).

geometer
()
Ответ на: комментарий от geometer
user@pc:~/$ ./dist/main
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/cx_Freeze/initscripts/Console.py", line 27, in <module>
    exec code in m.__dict__
  File "main.py", line 2, in <module>
    import notification 
  File "notification.py", line 1, in <module>
    import pynotify
  File "/usr/lib/python2.7/dist-packages/gtk-2.0/pynotify/__init__.py", line 1, in <module>
    from _pynotify import *
  File "ExtensionLoader_pynotify__pynotify.py", line 11, in <module>
ImportError: could not import gobject (error was: 'No module named gobject')
vladcraft
() автор топика
Ответ на: комментарий от geometer
Python 2.7.5+ (default, Sep 19 2013, 13:48:49) 
[GCC 4.8.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gobject
>>> print gobject
<module 'gobject' from '/usr/lib/python2.7/dist-packages/gobject/__init__.pyc'>
vladcraft
() автор топика
Ответ на: комментарий от vladcraft

Ну остается, как ты понимаешь, руками скопировать оттуда файл gobject.pyd - или как он там называется - в папку с программой.

geometer
()
Ответ на: комментарий от geometer

Покапался в питоновских программах, как они запускаются, банально, как я и писал, через bash, а в share всё остльное. Пока так же буду использовать. Прога у меня не коммерческая будет и только для linux, так что интерпритатор python'a в системе 99% будет и таскать его с собой не вижу особого смысла.

vladcraft
() автор топика
Ответ на: комментарий от geometer

Хотя вот зашел в папку viber'a, всё расположено в /usr/share/ и причем viber для linux написан на Qt5, так как в том же каталоге библиотеки so находятся. Всё в 1 каталоге.

vladcraft
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.