Почему Pip не работает в виртуальной среде Python 3.6.9?

Характеристики:

Я использую виртуальную машину Ubuntu Server 20.04.1 LTS в HyperV (с установленным графическим интерфейсом).

Я запускаю это и вижу, что оно пришло с Python 3.8.5:

$ python3 --version
Python 3.8.5

Цель:

Мне необходимо:

  1. Установите Python 3.6.9 на мою виртуальную машину.
  2. Перейдите в существующий каталог репозитория и создайте виртуальную среду для Python 3.6.9.
  3. Установите следующие пакеты в виртуальной среде Python 3.6.9:

введите здесь описание изображения

Реализация:

Сначала я загрузил исходные файлы Python 3.6.9 с https://www.python.org/downloads/release/python-369/ и извлек их в каталог на моей виртуальной машине.

Затем я перешел в указанный каталог и выполнил следующие команды:

$ time ./configure
$ time make                        
$ time sudo make install
$ time make clean

Затем я запустил эти команды и увидел, что Python 3.6.9 теперь установлен.

$ python3 --version
Python 3.8.5
$ python3.6 --version                                                                                                 
Python 3.6.9

Затем я установил pip и его пакет virtualenv. Если я запускаю эти команды, я получаю:

$ pip --version
pip 21.0.1 from /home/ubuntu/.local/lib/python3.8/site-packages/pip (python 3.8)
$ virtualenv --version
virtualenv 20.4.0 from /usr/local/lib/python3.8/dist-packages/virtualenv/__init__.py

Я проверю это в новом каталоге на рабочем столе. Как только я буду уверен, что это работает, я сделаю это в репозитории, где мне это нужно.

Я cd на рабочий стол. Затем я запускаю это, чтобы увидеть, где на моей виртуальной машине установлен Python 3.6.9:

$ which python3.6
/usr/local/bin/python3.6

Затем я запускаю:

$ virtualenv -p /usr/local/bin/python3.6 testenv3.6

Новый каталог testenv3.6 успешно создан на моем рабочем столе. Я cd к нему и запускаю:

$ source ./bin/activate
(testenv3.6) $ python3 --version
Python 3.6.9

Все кажется в порядке. Затем я попытался запустить pip install pandas и получил эту ошибку:

from pip._vendor import html5lib, requests
ImportError: cannot import name requests

Это также произошло, когда я попытался установить numpy или любой другой пакет. Похоже на это: ImportError: невозможно импортировать запросы имени

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

from pip._vendor import html5lib, requests

к этому:

from pip._vendor import html5lib
import requests

Затем я снова пытаюсь запустить pip install pandas или pip install numpy и получаю:

ModuleNotFoundError: No module named 'zlib'

Я снова поискал в Stack Overflow и нашел это: нет модуля с именем zlib

Согласно ответу этого URL-адреса, я попытался запустить sudo apt-get install zlib1g-dev. Я получаю это:

zlib1g-dev is already the newest version (1:1.2.11.dfsg-2ubuntu1.2).
The following packages were automatically installed and are no longer required:
  libpython3.6-minimal libpython3.6-stdlib python3.6-minimal
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 104 not upgraded.

Если я попытаюсь снова запустить pip install pandas или pip install numpy, останется та же ошибка:

ModuleNotFoundError: No module named 'zlib'

Я также пробовал pip install zlib, но это не работает.

Я искал несколько вопросов о переполнении стека для похожих проблем. Люди сказали:

  • Понизьте и установите определенную версию pip.
  • Понизьте и установите определенную версию virtualenv.
  • Попробуйте установить нужную версию Python из других источников.
  • Попробуйте установить Pip из других источников.

Кажется, ничего не работает.

Я также заметил, что предустановленные версии Python были в /bin/, а моя установка python 3.6.9 была в /usr/local/bin/. Поэтому я даже попытался переместить файл Python 3.6.9 рядом с другими предустановленными версиями Python. Итак, раньше я получил это:

$ which python3.6
/usr/local/bin/python3.6

И теперь я получаю это:

$ which python3.6
/bin/python3.6

Это все равно не исправило.

Теперь, после всех моих попыток, я мог установить Python в нескольких местах и ​​превратить свою систему в беспорядок. Я не уверен.

Помощь?


person antoniopgs    schedule 30.01.2021    source источник