[Документация Yandex Cloud](../../index.md) > [Yandex DataSphere](../index.md) > [Решение проблем](index.md) > Проблемы с установкой библиотек

# Решение проблем с зависимостями в Yandex DataSphere

По умолчанию DataSphere уже содержит популярные пакеты и библиотеки машинного обучения. Версии библиотек зависят от системного образа, указанного в настройках проекта. Полный список установленных пакетов приведен в разделе [Список предустановленного ПО](../concepts/preinstalled-packages.md).

{% note tip %}

Если в вашем проекте используется множество библиотек, и у вас возникают конфликты с предустановленными библиотеками, смотрите раздел [Сборка собственного Docker-образа](#docker). В DataSphere ограничено использование виртуального окружения и консоли.

{% endnote %}


## Что такое проблемы с зависимостями {#dependencies}

Конфликты версий библиотек возникают, когда два пакета требуют разные версии одной и той же библиотеки. Несоответствие версий библиотек затрудняют установку пакетов и могут вызвать ошибки при выполнении кода.

Если необходимые вам пакеты отсутствуют в стандартном образе DataSphere, установите их вручную.

Некоторые пакеты зависят от системных библиотек, установка которых невозможна в DataSphere из-за ограничения использования `sudo` и `apt`. В таких случаях придется искать обходные пути.

Если при установке или использовании пакетов возникают ошибки, это может быть связано с конфликтующими версиями зависимых библиотек. Такие ошибки включают сообщения об отсутствии модуля `ModuleNotFoundError` или несовместимости версий `VersionConflict`.

Когда возникает ошибка при установке пакета, `pip` обычно выводит подробное сообщение с указанием причины. Например, при конфликте версий `pip` укажет, какой пакет и какая версия вызвали проблему. Анализируйте эти сообщения, чтобы понять корень проблемы.

## Установить, удалить или обновить пакеты {#update-version}

Чтобы избежать конфликтов, можно установить _конкретную версию_ пакета. Например, для установки версии 0.11.1 пакета `seaborn` используйте команду:

```bash
%pip install seaborn==0.11.1
```

Иногда обновление пакетов до последних версий помогает решить проблемы с зависимостями. Для обновления пакета используйте команду:

```bash
%pip install --upgrade <имя_пакета>
```

Если конфликтующий пакет не нужен, его можно удалить:

```bash
%pip uninstall <имя_пакета>
```

Указывайте минимально необходимые версии пакетов, чтобы избежать конфликтов:

```bash
%pip install <имя_пакета>>=<минимальная_версия>
```

{% note info %}

После установки, обновления или удаления пакета перезапустите ядро JupyterLab. Для этого на верхней панели в окне проекта нажмите **Kernel** → **Restart Kernel**.

{% endnote %}


## Использовать файлы зависимостей {#requrements-txt}

С помощью файла зависимостей `requirements.txt` вы можете задать список всех необходимых пакетов и их версий для проекта. Это позволяет упростить установку зависимостей на других системах и избежать проблем при переносе окружения между разными системами. 

Чтобы установить пакеты и библиотеки из файла `requirements.txt`, расположенного в корне проекта, выполните команду:

```bash
%pip install -r requirements.txt
```

Чтобы сохранить список установленных библиотек в файл `requirements.txt`, выполните:

```bash
%pip freeze > requirements.txt
```

{% note info %}

Если вы хотите развернуть окружение из файла зависимостей, созданного в DataSphere, на другой платформе, удалите системные пакеты, устанавливаемые через `@`.

{% endnote %}

## Использовать внешние репозитории {#external-repos}

Если нужный вам пакет недоступен в PyPI, его можно установить напрямую из репозитория, например, из GitHub:

```bash
%pip install git+https://github.com/username/repository
```

Вы можете указать конкретную ветку или коммит для установки:

```bash
%pip install git+https://github.com/username/repository@branch_name
```

## Сборка собственного Docker-образа {#docker}

Собственный [Docker-образа](../concepts/docker.md) позволит настроить окружение с необходимыми зависимостями и инструментами, ускорить настройку новых проектов и обеспечить стабильность окружения. Создавая собственный Docker-образ, вы можете:

* использовать собственный заготовленный образ;
* использовать «чистые» образы Python без предустановленных зависимостей;
* устанавливать инструменты через `apt`;
* использовать версии библиотек и драйверов, отличные от предустановленных в DataSphere, например, установить другую версию CUDA;
* быстро установить большие библиотеки или скачать файлы.

О том, как собрать собственный образ, смотрите [Работа с Docker-образами](../operations/user-images.md).

## Часто возникающие ошибки {#qa}

### Ошибка ModuleNotFoundError {#module-not-found}

Ошибка `ModuleNotFoundError` возникает, когда пакет не установлен. Убедитесь, что пакет установлен, используя `%pip install <имя_пакета>`. Если вы только что установили пакет, перезапустите ядро JupyterLab.

### Ошибка VersionConflict {#version-conflict}

Ошибка `VersionConflict` возникает, когда в системе установлены несовместимые версии пакетов. Проверьте пакеты и установите совместимые версии:

```bash
%pip install <имя_пакета>==<необходимая_версия>
```

После переустановки пакета перезапустите ядро JupyterLab.

### Ошибка Could not find a version that satisfies the requirement {#not-found-version}

Ошибка `Could not find a version that satisfies the requirement` может возникнуть, если указана несуществующая версия пакета или если пакет недоступен в репозитории. Проверьте правильность имени пакета и версии и попробуйте установить другую версию.

### Что еще можно сделать {#what-is-else}

Если вы столкнулись с ошибкой, которую не можете решить, обратитесь [в поддержку](https://kz.center.yandex.cloud/support).