|
|
2 月之前 | |
|---|---|---|
| scripts | 2 月之前 | |
| src | 2 月之前 | |
| tools | 2 月之前 | |
| .env.example | 2 月之前 | |
| .gitignore | 2 月之前 | |
| .python-version | 2 月之前 | |
| README.md | 2 月之前 | |
| pyproject.toml | 2 月之前 |
Этот документ объясняет, как быстро развернуть проект у себя на ПК, запускать приложение и вносить изменения. Проект ориентирован на 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