mirror of
https://github.com/EDeev/school_table.git
synced 2026-10-07 20:49:37 +03:00
Одиночный SchoolTable.exe: пустая база и иконка вшиты и при первом запуске кладутся рядом; .exe — в релизе отдельным файлом
This commit is contained in:
parent
4fe87b12ba
commit
4403827c26
4 changed files with 14 additions and 7 deletions
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
|
|
@ -16,10 +16,10 @@ jobs:
|
||||||
python-version: "3.12"
|
python-version: "3.12"
|
||||||
- run: pip install pyinstaller -r requirements.txt
|
- run: pip install pyinstaller -r requirements.txt
|
||||||
- name: Сборка .exe
|
- name: Сборка .exe
|
||||||
run: pyinstaller --onefile --windowed --icon image.ico --name SchoolTable main.py
|
run: pyinstaller --onefile --windowed --icon image.ico --add-data "table.db;." --add-data "image.ico;." --name SchoolTable main.py
|
||||||
- name: Архив с программой, пустой базой и иконкой
|
- name: Архив с программой, пустой базой и иконкой
|
||||||
run: Compress-Archive -Path dist/SchoolTable.exe, table.db, image.ico -DestinationPath SchoolTable-windows.zip
|
run: Compress-Archive -Path dist/SchoolTable.exe, table.db, image.ico -DestinationPath SchoolTable-windows.zip
|
||||||
- name: Файл в релиз
|
- name: Файл в релиз
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ github.token }}
|
GH_TOKEN: ${{ github.token }}
|
||||||
run: gh release upload "${{ github.ref_name }}" SchoolTable-windows.zip --clobber
|
run: gh release upload "${{ github.ref_name }}" dist/SchoolTable.exe SchoolTable-windows.zip --clobber
|
||||||
|
|
|
||||||
|
|
@ -26,9 +26,9 @@ on their own. The interface is in Russian.
|
||||||
|
|
||||||
## Running
|
## Running
|
||||||
|
|
||||||
A ready-made Windows build is `SchoolTable-windows.zip` in the
|
A ready-made Windows build is in the [releases](https://github.com/EDeev/school_table/releases):
|
||||||
[releases](https://github.com/EDeev/school_table/releases): unpack it and run `SchoolTable.exe` (keep
|
`SchoolTable.exe` — just run it (an empty `table.db` and the icon appear next to it on first start), or
|
||||||
`table.db` next to it).
|
`SchoolTable-windows.zip` — the same with the database and icon in an archive.
|
||||||
|
|
||||||
From source:
|
From source:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,9 @@
|
||||||
|
|
||||||
## Запуск
|
## Запуск
|
||||||
|
|
||||||
Готовая сборка для Windows — `SchoolTable-windows.zip` в [релизах](https://github.com/EDeev/school_table/releases):
|
Готовая сборка для Windows — в [релизах](https://github.com/EDeev/school_table/releases): `SchoolTable.exe` — просто
|
||||||
распакуйте и запустите `SchoolTable.exe` (база `table.db` должна лежать рядом).
|
запустите (при первом запуске рядом появятся пустая база `table.db` и иконка), или `SchoolTable-windows.zip` — то же
|
||||||
|
с базой и иконкой в архиве.
|
||||||
|
|
||||||
Из исходников:
|
Из исходников:
|
||||||
|
|
||||||
|
|
|
||||||
6
main.py
6
main.py
|
|
@ -1,6 +1,7 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import datetime as dt
|
import datetime as dt
|
||||||
import os
|
import os
|
||||||
|
import shutil
|
||||||
import sqlite3
|
import sqlite3
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
@ -1325,6 +1326,11 @@ class MyWidget(QMainWindow, Ui_MainWindow):
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
# table.db ищется рядом с программой (или с .exe), а не в текущей папке терминала
|
# table.db ищется рядом с программой (или с .exe), а не в текущей папке терминала
|
||||||
os.chdir(os.path.dirname(sys.executable if getattr(sys, "frozen", False) else os.path.abspath(__file__)))
|
os.chdir(os.path.dirname(sys.executable if getattr(sys, "frozen", False) else os.path.abspath(__file__)))
|
||||||
|
if getattr(sys, "frozen", False):
|
||||||
|
# одиночный .exe: пустая база и иконка вшиты внутрь и при первом запуске кладутся рядом
|
||||||
|
for name in ("table.db", "image.ico"):
|
||||||
|
if not os.path.exists(name):
|
||||||
|
shutil.copy(os.path.join(sys._MEIPASS, name), name)
|
||||||
app = QApplication(sys.argv)
|
app = QApplication(sys.argv)
|
||||||
ex = MyWidget()
|
ex = MyWidget()
|
||||||
ex.show()
|
ex.show()
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue