Форум сайта python.su
Всем привет.
Написал графическую программу на Python + pyside2. Но так и не понял в какую сторону двигаться теперь.
Такое ощущение, что чего-то не понимаю до конца.
Есть программа с графическим интерфейсом. Для удобства вся логика в отдельных модулях mod1.py и mod2.py
В my_gui.py посреднический класс для запуска модулей и отправки сообщения в окно главной программы в отдельном потоке, и класс для запуска окна приложения.
1. Верная ли структура папок?
my_project
—-my_project
——– __init__.py (с номером версии)
——– mod1.py (Модуль с некой логикой)
——– mod2.py (Еще модуль с полезной логикой)
——– my_gui.py (Тут код для запуска графической оболочки, сюда импортируются оба модуля)
—-README.txt
—-setup.py (Тут использую код для сборки командой python3 setup.py sdist)
—-LICENSE.txt
—-requirements.txt (Тут pyside2)
2. Правильная ли эта структура для размещения на github?
3. Как распространять такую программу под Windows, Linux?
4. Где все-таки должен располагаться скрипт для запуска самого приложения my_gui.py, так как в моей структуре? Или лежать в корневой папке?
5. Должен ли я собрать пакет отдельно от my_gui.py, а потом уже его импортировать (пакет)? Пакеты собираются вместе с основной программой или нет? Или мне вообще не нужны никакие пакеты? Структура то у меня для пакета, но может есть другие способы для распространения? Просто я знаю только этот?
На данный момент если собрать все в пакет
python3 setup.py sdist
from my_project import mod1
from my_project import mod2
python3 setup.py sdist
pip3 install my_project
python3 my_project/my_gui.py
import mod1
import mod2
python3 my_project/my_gui.py
from my_project import mod1
from my_project import mod2
python3 my_project/my_gui.py
Отредактировано joker_s (Март 25, 2020 04:58:50)
Офлайн
Для Windows должен быть установщик. Для Linux должен быть пакет. Для разработки должен быть проект. Чтобы собрать установщик для Windows, в проекте должны быть скрипты сборки установщика. Чтобы собрать пакет для Linux, в проекте должны быть скрипты сборки пакета.
Я думаю, ты просто зациклился на том, что проект, скачанный с GitHub'а, должен сразу быть готов к использованию во всех системах сразу. А нужно делать для каждой системы свой дистрибутив. А при сложных программах вообще разные проекты должны быть, потому что внешний вид программы может быть одинаковым в абсолютно разных операционных системах, а внутренности программы в этих операционных системах могут быть вообще разными по своей сути.
Отредактировано py.user.next (Март 25, 2020 07:32:05)
Онлайн