Вопрос или проблема
Я хотел бы установить пакеты Python (например, pipenv) в Ubuntu 24.04, однако не могу. Ниже приведены команды, которые я попробовал. Как мне преодолеть эти преграды? Раньше это было довольно просто в предыдущих версиях Ubuntu.
$ sudo apt install python3-pip
$ python3 -m pip install --user pipenv
ошибка: управляемая извне среда
× Эта среда управляется извне
╰─> Чтобы установить пакеты Python по всему миру, попробуйте apt install
python3-xyz, где xyz - это пакет, который вы пытаетесь
установить.
Если вы хотите установить пакет Python, не упакованный в Debian,
создайте виртуальную среду с помощью python3 -m venv path/to/venv.
Затем используйте path/to/venv/bin/python и path/to/venv/bin/pip. Убедитесь,
что у вас установлен python3-full.
Если вы хотите установить aplicación Python, не упакованную в Debian,
возможно, проще всего использовать pipx install xyz, который будет управлять
виртуальной средой для вас. Убедитесь, что у вас установлен pipx.
См. /usr/share/doc/python3.12/README.venv для получения дополнительной информации.
Примечание: Если вы считаете, что это ошибка, пожалуйста, свяжитесь с вашим поставщиком установки Python или дистрибутива ОС. Вы можете обойти это, рискуя сломать вашу установку Python или ОС, передав --break-system-packages.
Подсказка: См. PEP 668 для подробной спецификации.
$ sudo apt install pipx
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение состояния информации... Готово
Некоторые пакеты не могут быть установлены. Это может означать, что вы
запросили невозможную ситуацию или если вы используете нестабильную
распределение, что некоторые необходимые пакеты еще не были созданы
или были перемещены из Incoming.
Следующая информация может помочь решить ситуацию:
Следующие пакеты имеют неудовлетворенные зависимости:
python3-venv : зависит от: python3 (= 3.12.3-0ubuntu1), но должен быть установлен 3.12.3-0ubuntu2
E: Не удается исправить проблемы, у вас удерживаемые сломанные пакеты.
$ sudo apt search pipx
Сортировка... Готово
Поиск по полному тексту... Готово
pipx/noble 1.4.3-1 all
выполнение бинарных файлов из пакетов Python в изолированных средах
Существует много разных способов, как вы могли бы это сделать, но вот моя рекомендация одного относительно простого способа, который в общем случае убережет вас от проблем:
- Установите pipx с помощью
sudo apt install python3-pipx
- Используйте pipx для установки любого приложения Python, которое вы хотите, где “приложение” означает программу, которую вы хотите запустить, но не модифицировать. Например:
pipx install pipenv
. - Для любого кода Python, который вы хотите изменить, если это устоявшийся пакет с открытым исходным кодом, он подскажет вам, какие инструменты вам нужны (такие как pipenv, tox, hatch, pdm, pre-commit, pip-run и так далее); используйте pipx, чтобы установить эти инструменты, а затем работайте над ними. Если вы создаете новый проект с нуля, вы можете выбрать, какие из них использовать; снова используйте pipx, чтобы установить все, что вам нужно, а затем работайте над ними.
а не используя apt
. Современный Python полагается на изолированные виртуальные среды, чтобы вы могли иметь разные наборы пакетов, установленных без их вмешательства друг в друга, и pipx является примером инструмента, который создаст и управляет этими средами для вас за кулисами. Сам по себе pip этого не делает. Вот почему, когда вы пытаетесь установить вещи, используя pip install --user
, вы можете создать беспорядок.
С учетом сказанного, прежде чем вы сможете сделать что-либо из этого, вам, вероятно, нужно будет решить эту проблему:
Следующие пакеты имеют неудовлетворенные зависимости:
python3-venv : зависит от: python3 (= 3.12.3-0ubuntu1), но должен быть установлен 3.12.3-0ubuntu2
E: Не удается исправить проблемы, у вас удерживаемые сломанные пакеты.
Я не уверен, что именно вам нужно сделать здесь, но вы можете обратиться к Не удается исправить проблемы, у вас удерживаемые сломанные пакеты, чтобы выяснить, с чего начать. (Я бы предположил, что вам, возможно, придется обновить вашу систему до последних доступных версий python3
и/или python3-venv
, но я не уверен.)
Ответ или решение
Установка Python-пакетов (например, pipenv) в Ubuntu 24.04
Если вы столкнулись с трудностями при установке Python-пакетов в Ubuntu 24.04, не переживайте. В этом руководстве мы подробно обсудим, как правильно установить pipenv и другие пакеты Python в данном дистрибутиве. Поскольку Ubuntu 24.04 вводит некоторые изменения в управлении зависимостями и виртуальными окружениями, давайте рассмотрим пошаговое руководство по решению вашей проблемы.
Шаг 1: Установка pip и pipx
Сначала необходимо убедиться, что у вас установлен pip (менеджер пакетов Python). Откройте терминал и выполните следующую команду:
sudo apt install python3-pip
После успешной установки pip, следующая важная задача – установка pipx, который позволяет устанавливать и управлять Python-приложениями в изолированных окружениях:
sudo apt install python3-pipx
Если вы столкнётесь с проблемами, связанными с зависимостями, например, с ошибками «не удалось исправить проблемы», вы можете попробовать обновить ваш список пакетов и их версии:
sudo apt update
sudo apt upgrade
Шаг 2: Установка pipenv с помощью pipx
После установки pipx вы готовы установить pipenv. Сделайте это с помощью следующей команды:
pipx install pipenv
Использование pipx для установки Python-приложений имеет множество преимуществ, так как он создаёт отдельные виртуальные окружения для каждого установленного приложения, что позволяет избежать конфликтов между зависимостями различных программ.
Шаг 3: Устранение проблем с зависимостями
Если вы получаете ошибку о недостающих зависимостях, например:
The following packages have unmet dependencies: python3-venv : Depends: python3 (= 3.12.3-0ubuntu1) but 3.12.3-0ubuntu2 is to be installed
Это может означать, что ваша система имеет «заблокированные пакеты». Обратите внимание на следующие шаги для диагностики и устранения этой проблемы:
-
Проверка заблокированных пакетов:
Вы можете использовать следующую команду для отображения заблокированных пакетов:
sudo dpkg --get-selections | grep hold
Если такие пакеты есть, их необходимо разблокировать, используя:
sudo apt-mark unhold <пакет_имя>
-
Проверка доступных обновлений:
Убедитесь, что у вас установлены все доступные обновления для вашей системы:
sudo apt update sudo apt upgrade
-
Переустановка Python и venv:
Если проблемы продолжаются, вы можете попробовать переустановить Python и пакеты для виртуального окружения:
sudo apt install --reinstall python3 python3-venv
Шаг 4: Создание и использование виртуального окружения
После успешной установки pipenv вы можете создать новое виртуальное окружение для вашего проекта:
mkdir мой_проект
cd мой_проект
pipenv --python 3.12
Теперь вы можете установить зависимости для вашего проекта:
pipenv install <пакет>
Заключение
Следуя приведённым рекомендациям, вы сможете успешно установить Python-пакеты, такие как pipenv, в Ubuntu 24.04. Использование pipx для установки приложений и управление зависимостями через виртуальные окружения со временем упростит вашу работу с проектами на Python, избегая конфликтов и упрощая управление версиями. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью в сообщества пользователей Ubuntu или Python.