Python3.5 требует установки pip в 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 с помощью , он не может установить предыдущую версию 2.1.0. Тем не менее, мне нужно было установить 3.1.7. У меня есть версия django 3, установленная как root, но в этом конкретном virtualenv я чувствую, что python3.5 требует пипса, и все установки просто беспорядочны.

Спасибо

2 ответа

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

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

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

      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 были скомпилированы для вашей системы.

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

      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 ссылаются на.

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

      pip-full-path-for-3.9 install django

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

      echo "alias pip3.9=pip-full-path-for-3.9" >> ~/.bashrc

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

Как?

      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

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

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