# Установка и обновление

DuckoNet 0.11.5 работает с 64-битным CPython 3.12. Выберите пакет для своей ОС и устанавливайте его в отдельное виртуальное окружение.

## Windows

Пакет предназначен для Windows x64. Windows 11 совместима с текущей поставкой. Жёсткой проверки «только Windows 11» в библиотеке нет: на Windows 10 запуск зависит от доступности системного механизма идентификатора загрузки. Единого минимального номера сборки Windows библиотека не заявляет. Windows 7 и 8 не поддерживаются штатным CPython 3.12; совместимость с Windows 8.1 не заявляется.

SQLite включена в нативное ядро DuckoNet. Отдельно устанавливать SQLite или подбирать системную winsqlite3.dll не нужно. Это не отменяет остальных требований к Windows и Python.

Скачайте файл `duckonet-0.11.5-cp312-none-win_amd64.whl`. Выполните команды из каталога, куда он сохранён:

```console
py -3.12 -m venv .venv
.venv\Scripts\python.exe -m pip install ./duckonet-0.11.5-cp312-none-win_amd64.whl
```

## Linux

Пакет предназначен для Ubuntu 24.04 x64. В системе должны быть Python 3.12 и модуль venv. Скачайте `duckonet-0.11.5-cp312-none-linux_x86_64.whl` и выполните из того же каталога:

```console
python3.12 -m venv .venv
.venv/bin/python -m pip install ./duckonet-0.11.5-cp312-none-linux_x86_64.whl
```

Pip установит зависимости пакета. Не используйте --no-deps для обычной установки. Другие версии Python, macOS и ARM этой поставкой не поддерживаются.

## Первый запрос

Сохраните свой API-ключ в переменной окружения DUCKONET_API_KEY:

```python
import os
from duckonet import HttpClient

with HttpClient(api_key=os.environ["DUCKONET_API_KEY"], browser="chrome") as client:
    response = client.get("https://example.com/")
    response.raise_for_status()
    print(response.text)
```

Клиент сам подготавливает установку, получает каталог и загружает подходящий подписанный профиль. Передавать доверенные ключи, собирать низкоуровневые объекты или устанавливать сам браузер для такого запроса не нужно. Первый запуск требует доступа к сервисам DuckoLab.

## Версия браузера и обновления

Без version клиент выбирает доступную версию при открытии. Полная строка версии закрепляет конкретный профиль. Чтобы получать новые доступные профили во время длительной работы, используйте version="last" и обозначайте каждый полный прогон через client.run(). Новое поколение выбирается между прогонами; начатый прогон и открытые соединения сохраняют свой профиль. Библиотека не перезапускает ваш скрипт самостоятельно.

last означает последнюю опубликованную совместимую версию, разрешённую вашему ключу. Free и Pro могут получать разные версии. Наличие файла в локальном кеше не даёт доступа к Pro без действующих прав. В библиотеку не вложен полный комплект браузерных профилей: нужные файлы загружаются по запросу.

## Сохранение установки и cookies

При обновлении пакета сохраняйте прежний state_dir. По умолчанию используется ~/.duckonet/default; это каталог состояния установки, доверия и загруженных данных. Не удаляйте его для устранения временной ошибки связи.

Cookies автоматически обрабатываются внутри клиента и сохраняются при смене профиля между прогонами. Для переноса cookies через закрытие приложения нужны явные export_data() и import_data(). Параметр persist_cookies отвечает за обработку Set-Cookie, а не за запись cookies на диск.

После временной сетевой ошибки создайте новый клиент с тем же ключом и state_dir. Прерванная первичная регистрация продолжается автоматически, в том числе после истечения подтверждения. Доступ без сети возможен только пока пригодны сохранённые данные и права; проверки подписи, сроков и отзыва не отключаются.

## Версия установленного пакета

```python
from importlib.metadata import version
print(version("duckonet"))
```

Подробнее: [обновление профилей](profile-updates.html), [cookies](cookies.html), [прокси и ошибки](advanced.html).

## Скачать DuckoNet 0.11.5

- [win_amd64](https://curl.duckolab.com/duckonet/sdk/0.11.5/duckonet-0.11.5-cp312-none-win_amd64.whl)
- [linux_x86_64](https://curl.duckolab.com/duckonet/sdk/0.11.5/duckonet-0.11.5-cp312-none-linux_x86_64.whl)

## Доступные браузеры

| Браузер | Free | Pro |
|---|---|---|
| Chrome | 150 | 151–155 |
| Microsoft Edge | 151.0.4129.107 | 156.0.4314.42 |

Для Chrome используйте `browser="chrome"`, для Microsoft Edge — `browser="edge"`. Значение `version="last"` выбирает последнюю опубликованную совместимую версию, доступную вашему API-ключу. Полная версия закрепляет конкретный профиль. [Примеры Edge](edge.html).

### Полные номера профилей

| Браузер | Версия | Минимальный тариф |
|---|---|---|
| Chrome | `150.0.7871.124` | Free |
| Chrome | `151.0.7922.138` | Pro |
| Chrome | `152.0.7977.82` | Pro |
| Chrome | `153.0.8010.52` | Pro |
| Chrome | `154.0.8037.92` | Pro |
| Chrome | `155.0.8059.84` | Pro |
| Microsoft Edge | `151.0.4129.107` | Free |
| Microsoft Edge | `156.0.4314.42` | Pro |
