Python3.5 заявляет об установке пакета в virtualenv и его удаление вызывает ошибки

nmj@pc-nm:~$ sudo apt remove python3.5
Reading package lists... Done
Building dependency tree        
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies.
 debconf : PreDepends: perl-base (>= 5.6.1-4) but it is not going to be installed
           Recommends: apt-utils (>= 0.5.1) but it is not going to be installed
           Recommends: debconf-i18n but it is not going to be installed
 init-system-helpers : Depends: perl-base (>= 5.20.1-3) but it is not going to be installed
 libacl1 : Depends: libattr1 (>= 1:2.4.46-8) but it is not going to be installed
 libedit2 : Depends: libtinfo5 (>= 6) but it is not going to be installed
 libsystemd0 : PreDepends: libgcrypt20 (>= 1.6.1) but it is not going to be installed
 libxml2 : Depends: libicu65 (>= 65.1-1~) but it is not going to be installed
 libzvbi0 : Depends: libpng12-0 (>= 1.2.13-4) but it is not going to be installed
 procps : Depends: libncurses5 (>= 6) but it is not going to be installed
          Depends: libncursesw5 (>= 6) but it is not going to be installed
          Depends: libprocps4 but it is not going to be installed
          Depends: libtinfo5 (>= 6) but it is not going to be installed
          Depends: initscripts
 psmisc : Depends: libtinfo5 (>= 6) but it is not going to be installed
 systemd : PreDepends: libgcrypt20 (>= 1.6.1) but it is not going to be installed
           Depends: libaudit1 (>= 1:2.2.1) but it is not going to be installed
           Depends: libblkid1 (>= 2.19.1) but it is not going to be installed
           Depends: libcryptsetup4 (>= 2:1.4.3) but it is not going to be installed
           Depends: libmount1 (>= 2.26.2) but it is not going to be installed
           Depends: libpam0g (>= 0.99.7.1) but it is not going to be installed
           Depends: util-linux (>= 2.27.1)
           Depends: mount (>= 2.26)
           Depends: adduser but it is not going to be installed
           Recommends: libpam-systemd but it is not going to be installed
           Recommends: dbus
 ucf : Depends: coreutils (>= 5.91)
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

Выше мой журнал ошибок. Я пытаюсь удалить python3.5, чтобы сохранить python3.9, но я продолжаю получать эту ошибку. Мне нужна помощь. ребята Я использую ubuntu 16.04LTS И я пытаюсь работать над проектом django, но pip даже внутри venv продолжает разбирать все свои пакеты в базовый каталог python3.5, и это становится так раздражает, потому что после нескольких часов поиска исправлений я продолжаю сталкиваться с большим количеством ошибок из-за конфликта этой версии.

Тогда для virtualenv: всякий раз, когда я пытаюсь установить django с помощью pip install django , он не может установить предыдущую версию 2.1.0. Но мне нужно было установить 3.1.7 {{1 }} У меня есть версия django 3, установленная как root, но в этом конкретном virtualenv я чувствую, что python3.5 запрашивает pip, и все установки просто беспорядочные.

Спасибо

0
задан 1 April 2021 в 03:31

2 ответа

Я нашел исправление для этого. Очень просто создать virtualenv, зависящие от версии

Как?

virtualenv venv --python=python3.9

из приведенного выше python 3.9 будет только версия в нем

source venv/bin/activate

Теперь подтвердите свою зону, свободную от конфликтов, следующим:

pip --version
pip3 --version

2 результата в 1 ответе

python --version
python3 --version
python3.9 --version

3 вышеупомянутых результата приведут к 1 ответу.

Теперь для установки из pip достаточно выполнить pip install ... pip --freeze покажет вам все требования внутри venv в qn

Надеюсь, это поможет кто-то там.

0
ответ дан 23 April 2021 в 23:27

Ваша проблема не совсем понятна из вашего описания. Но у меня есть идея, возможно, она вам поможет.

Сколько версий питона было установлено в вашей системе?

Если вы этого не знаете, попробуйте это,

find /usr /lib* /home -type d \( -name "*site-packages" -or -name "*dist-packages" \)

Идея в том, чтобы найти все папки с дистрибутивом и пакетами Python.

/usr/lib/python2.7/dist-packages
/usr/lib/python3/dist-packages
/home/name/pyenv/versions/3.8.3/lib/python3.8/site-packages

Тогда у вас будет четкое представление о том, какие версии Python были скомпилированы в вашей системе.

Теперь пришло время получить все их pips. (некоторых из них может и не быть, если вы не установите их)

find /bin /usr /lib* /home -type f -name "pip*" -executable

Вы можете получить некоторые выходы типа;

/usr/bin/pip3
/usr/bin/pip3.5
/home/NAME/pyenv/shims/pip3

Проверьте их по одному, используя:

PATH-of-PIP --version

e.g.

/usr/bin/pip3 --version

Чтобы узнать, с какими версиями pips соединяются эти pips.

В вашем случае, так как вы хотите использовать версию python-3.9, вы можете;

pip-full-path-for-3.9 install django

Для удобства, вы также можете постоянно добавлять ее в ваш файл .bashrc. Я предлагаю добавить к нему псевдоним . Или сделать символическую ссылку. Или изменить его название для удобства запоминания, если вы действительно уверены в этом.

echo "alias pip3.9=pip-full-path-for-3.9" >> ~/.bashrc
1
ответ дан 23 April 2021 в 23:27

Другие вопросы по тегам:

Похожие вопросы: