Написал графическую программу на 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
Еще проблемы:
В my_gui.py я импортирую модули так:
from my_project import mod1
from my_project import mod2
python3 setup.py sdist
pip3 install my_project
Но напрямую
python3 my_project/my_gui.py
Тогда я импортирую модули в 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
Вообщем запутался окончательно. Хотелось бы получить ответ на все эти вопросы.
Цель следующая:
Разобраться как правильно структурировать папки и импорты, чтобы не было ошибок в обоих случаях.
Продолжать работать над программой на github целиком и с модулями и с основной программой.
После клонирования с репа программа должна запускаться из папки без проблем.
Пакет должен собираться без проблем.
Создать установщик для windows, linux. Или как минимум найти какойто адекватный способ распространения и запуска.
Или установка с помощью pip это и есть адекватный способ?
Может я как-то не так все понимаю и неправильно объясняю, но я долго пытался разобраться сам пока не накопилось столько вопросов и я окночательно не запутался.