|
hace 1 mes | |
---|---|---|
.idea | hace 1 mes | |
scripts | hace 1 mes | |
src | hace 1 mes | |
tools | hace 1 mes | |
.env.example | hace 1 mes | |
.gitignore | hace 2 meses | |
.python-version | hace 1 mes | |
README.md | hace 1 mes | |
pyproject.toml | hace 1 mes |
Этот документ объясняет, как быстро развернуть проект у себя на ПК, запускать приложение и вносить изменения. Проект ориентирован на Windows + Python 3.12.10, GUI на PyQt5. Точка входа: from knee.app import main; main()
.
Версия Python закреплена в файле
.python-version
(3.12.10).
# PowerShell/CMD
cd <projectDir>
git clone https://git.physics.itmo.ru/nikita.babich/knee_seg
cd knee_seg
Запустите установочный скрипт:
scripts\setup.cmd
Что делает скрипт:
.venv
(если ещё нет).pip/setuptools/wheel
внутри .venv
.src\
и формирует/обновляет requirements.in
(скриптом tools\scan_imports.py
).pip install -e .
.requirements.in
.requirements.lock.txt
(зафиксированные версии).Если в выводе консоли видны «кракозябры», переключите кодировку в CMD на UTF‑8 и запустите снова:
chcp 65001
scripts\setup.cmd
Вариант 1 — скриптом (дабл-клик по файлу):
scripts\run_app.cmd
Вариант 2 — напрямую из venv:
.\.venv\Scripts\python.exe -c "from knee.app import main; main()"
project-root/
├─ src/
│ └─ knee/ # основной пакет приложения
│ ├─ app.py # точка входа (main)
│ ├─ ... # модули, виджеты, утилиты
├─ tools/
│ └─ scan_imports.py # сканер импортов → requirements.in
├─ scripts/
│ ├─ setup.cmd / setup.ps1 # автонастройка окружения (Windows)
│ └─ run_app.cmd # запуск приложения
├─ pyproject.toml # метаданные проекта и зависимости
├─ requirements.in # список зависимостей (источник)
├─ requirements.lock.txt # зафиксированные версии (freeze)
├─ .python-version # версия Python (3.12.10)
└─ README.md # этот документ
feature/...
, fix/...
).Импорты в коде используйте пакетные (пример): ```python
from knee import image_label from knee.constants import SOME_CONST
# избегайте «голых» импортов топ-уровня # import image_label # from constants import SOME_CONST
Так Python и инструменты корректно воспринимают локальные модули, а сканер не добавляет их в зависимости.
### 6.2 Обновление зависимостей
Когда вы добавили импорт новой внешней библиотеки:
```powershell
# пересобрать requirements.in по импортам
.\.venv\Scripts\python.exe tools\scan_imports.py --src src --out requirements.in
# установить обновления
.\.venv\Scripts\pip.exe install -r requirements.in
# обновить lock-файл
.\.venv\Scripts\pip.exe freeze | Out-File -Encoding ascii requirements.lock.txt
Альтернатива: просто снова запустить
scripts\setup.cmd
— он выполнит те же действия автоматически.
Если в pyproject.toml
определён раздел [project.optional-dependencies].dev
, можно поставить инструменты разработчика (линтеры, тесты):
.\.venv\Scripts\pip.exe install -e .[dev]
Рекомендованные инструменты: pytest
, ruff
, mypy
.
# активация venv (сеанс PowerShell)
.\.venv\Scripts\Activate.ps1
# запуск приложения
python -c "from knee.app import main; main()"
# установка зависимостей из requirements.in
pip install -r requirements.in
# полная переустановка редактируемого пакета
pip uninstall -y KneeSeg
pip install -e .
# автогенерация зависимостей по импортам
python tools\scan_imports.py --src src --out requirements.in
UnicodeDecodeError при сборке из pyproject.toml
: проверьте, что README.md
сохранён в UTF‑8 без BOM. В PowerShell можно переконвертировать:
(Get-Content -Raw -Encoding Unicode README.md) | Set-Content -NoNewline -Encoding utf8 README.md
No matching distribution found for ...
: вероятнее всего, локальный модуль попал в requirements.in
. Удалите его из файла и перегенерируйте зависимости с помощью tools\scan_imports.py
..venv
.chcp 65001
перед запуском scripts\setup.cmd
.# деактивация venv
Deactivate
# удаление окружения
Remove-Item -Recurse -Force .venv
# повторная установка
scripts\setup.cmd