Latest posts on Распространение графического приложения python + pyside2 topichttp://python.su/forum/topic/38666/2020-03-25T07:30:16+02:00Общий :: Python для экспертов :: Распространение графического приложения python + pyside2
2020-03-25T07:30:16+02:00py.user.next208556Для Windows должен быть установщик. Для Linux должен быть пакет. Для разработки должен быть проект. Чтобы собрать установщик для Windows, в проекте должны быть скрипты сборки установщика. Чтобы собрать пакет для Linux, в проекте должны быть скрипты сборки пакета.<br/><br/>Я думаю, ты просто зациклился на том, что проект, скачанный с GitHub'а, должен сразу быть готов к использованию во всех системах сразу. А нужно делать для каждой системы свой дистрибутив. А при сложных программах вообще разные проекты должны быть, потому что внешний вид программы может быть одинаковым в абсолютно разных операционных системах, а внутренности программы в этих операционных системах могут быть вообще разными по своей сути.
Общий :: Python для экспертов :: Распространение графического приложения python + pyside2
2020-03-25T04:37:54+02:00joker_s208554Всем привет. <br/>Написал графическую программу на Python + pyside2. Но так и не понял в какую сторону двигаться теперь.<br/>Такое ощущение, что чего-то не понимаю до конца.<br/>Есть программа с графическим интерфейсом. Для удобства вся логика в отдельных модулях mod1.py и mod2.py<br/>В my_gui.py посреднический класс для запуска модулей и отправки сообщения в окно главной программы в отдельном потоке, и класс для запуска окна приложения.<br/>1. Верная ли структура папок? <br/><strong>my_project<br/>—-my_project<br/>——– __init__.py (с номером версии)<br/>——– mod1.py (Модуль с некой логикой)<br/>——– mod2.py (Еще модуль с полезной логикой)<br/>——– my_gui.py (Тут код для запуска графической оболочки, сюда импортируются оба модуля)<br/>—-README.txt<br/>—-setup.py (Тут использую код для сборки командой python3 setup.py sdist)<br/>—-LICENSE.txt</strong><br/>—-requirements.txt (Тут pyside2)<br/>2. Правильная ли эта структура для размещения на github?<br/>3. Как распространять такую программу под Windows, Linux?<br/>4. Где все-таки должен располагаться скрипт для запуска самого приложения my_gui.py, так как в моей структуре? Или лежать в корневой папке?<br/>5. Должен ли я собрать пакет отдельно от my_gui.py, а потом уже его импортировать (пакет)? Пакеты собираются вместе с основной программой или нет? Или мне вообще не нужны никакие пакеты? Структура то у меня для пакета, но может есть другие способы для распространения? Просто я знаю только этот?<br/><br/>На данный момент если собрать все в пакет <div class="code"><pre> <span class="n">python3</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">sdist</span>
</pre></div>, залить на PyPi и установить потом с помощью pip, все прекрасно работает. Из консоли я могу запускать так: my_gui. Устанавливается пакет в систему напрямую в site_packages и это не очень хорошо. Но это графическое приложение, может я должен был собрать пакет без него (без my_gui.py), а потом уже для него устанавливать свой пакет или импортировать в него используя какой-то другой setup.py для импорта и установки? Но что выкладывать на github и как? В том виде в каком сейчас или как-то по другому? Ведь я создаю одновременно и графическое приложение и пакет модулей к нему, который буду возможно использовать и в других программах.<br/><br/>Еще проблемы:<br/>В my_gui.py я импортирую модули так:<br/><div class="code"><pre> <span class="kn">from</span> <span class="nn">my_project</span> <span class="kn">import</span> <span class="n">mod1</span>
</pre></div><div class="code"><pre> <span class="kn">from</span> <span class="nn">my_project</span> <span class="kn">import</span> <span class="n">mod2</span>
</pre></div>Пакет без проблем собирается, устанавливается и работает.<br/><div class="code"><pre> <span class="n">python3</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">sdist</span>
</pre></div><div class="code"><pre> <span class="n">pip3</span> <span class="n">install</span> <span class="n">my_project</span>
</pre></div><br/>Но напрямую <div class="code"><pre> <span class="n">python3</span> <span class="n">my_project</span><span class="o">/</span><span class="n">my_gui</span><span class="o">.</span><span class="n">py</span>
</pre></div>файл my_gui.py не запускается, ошибка импорта. <br/>Тогда я импортирую модули в my_gui.py так:<br/><div class="code"><pre> <span class="kn">import</span> <span class="nn">mod1</span>
</pre></div><div class="code"><pre> <span class="kn">import</span> <span class="nn">mod2</span>
</pre></div>Теперт файл запускается напрямую <div class="code"><pre> <span class="n">python3</span> <span class="n">my_project</span><span class="o">/</span><span class="n">my_gui</span><span class="o">.</span><span class="n">py</span>
</pre></div>,<br/>при сборке пакета все отлично. Но после установки пакета ошибка импорта. <br/>Для пакета работает только: <br/><div class="code"><pre> <span class="kn">from</span> <span class="nn">my_project</span> <span class="kn">import</span> <span class="n">mod1</span>
</pre></div><div class="code"><pre> <span class="kn">from</span> <span class="nn">my_project</span> <span class="kn">import</span> <span class="n">mod2</span>
</pre></div><br/>Я использую вариант который работает для пакета, но если скачать код с гитхаба, и попытаться запустить приложение:<br/><div class="code"><pre> <span class="n">python3</span> <span class="n">my_project</span><span class="o">/</span><span class="n">my_gui</span><span class="o">.</span><span class="n">py</span>
</pre></div>Ошибка импорта! Но если ее исправить тогда ошибка после установки и запуска пакета.<br/><br/>Вообщем запутался окончательно. Хотелось бы получить ответ на все эти вопросы.<br/>Цель следующая: <br/>Разобраться как правильно структурировать папки и импорты, чтобы не было ошибок в обоих случаях.<br/>Продолжать работать над программой на github целиком и с модулями и с основной программой.<br/>После клонирования с репа программа должна запускаться из папки без проблем.<br/>Пакет должен собираться без проблем.<br/>Создать установщик для windows, linux. Или как минимум найти какойто адекватный способ распространения и запуска.<br/>Или установка с помощью pip это и есть адекватный способ?<br/><br/>Может я как-то не так все понимаю и неправильно объясняю, но я долго пытался разобраться сам пока не накопилось столько вопросов и я окночательно не запутался.<br/>