Не удается обновить pip за прокси.

Вопрос или проблема

Я попробовал все рекомендации из другого вопроса, но они не работают для меня: Unable to upgrade pip

Я использую Ubuntu 12.04 и смог установить pip 1.0 с помощью apt, но, судя по всему, эта версия имеет ошибку, не совместимую с прокси, поэтому я не знаю, как обновить её.

Вот что я получаю в консоли:

$ pip --version
pip 1.0 from /usr/lib/python2.7/dist-packages (python 2.7)
$ which pip
/usr/local/bin/pip

попытка №1

$ pip --proxy=$http_proxy install -U pip
Downloading/unpacking pip
  Cannot fetch index base URL http://pypi.python.org/simple/
  Could not find any downloads that satisfy the requirement pip
No distributions at all found for pip
Storing complete log in /home/falconer_k/.pip/pip.log

попытка №2

$ python ~/Downloads/get-pip.py --proxy=$http_proxy
/usr/lib/python2.7/dist-packages/setuptools/command/install_scripts.py:3:
UserWarning: Module pip was already imported from 
/tmp/tmpqbetIm/pip.zip/pip/__init__.py, but /usr/lib/python2.7/dist-packages
is being added to sys.path from pkg_resources import Distribution, PathMetadata, ensure_directory
Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after 
connection broken by 'ProxyError('Cannot connect to proxy.', 
NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.Verified
HTTPSConnection object at 0x392eed0>: Failed to establish a new connection: 
[Errno -2] Name or service not known',))': /simple/pip/

Я могу получить доступ к папке simple/pip напрямую через браузер:

https://pypi.python.org/simple/pip/

У меня также нет возможности использовать соединение без прокси.

Вот содержимое ~/.pip/pip.log:

------------------------------------------------------------
/usr/bin/pip run on Tue May  3 15:33:22 2016
Downloading/unpacking pip
  Getting page http://pypi.python.org/simple/pip
  Could not fetch URL http://pypi.python.org/simple/pip: timed out
  Will skip URL http://pypi.python.org/simple/pip when looking for download links for pip
  Getting page http://pypi.python.org/simple/
  Could not fetch URL http://pypi.python.org/simple/: <urlopen error [Errno 113] No route to host>
  Will skip URL http://pypi.python.org/simple/ when looking for download links for pip
  Cannot fetch index base URL http://pypi.python.org/simple/
  URLs to search for versions for pip:
  * http://pypi.python.org/simple/pip/
  Getting page http://pypi.python.org/simple/pip/
  Could not fetch URL http://pypi.python.org/simple/pip/: <urlopen error [Errno 113] No route to host>
  Will skip URL http://pypi.python.org/simple/pip/ when looking for download links for pip
  Could not find any downloads that satisfy the requirement pip
No distributions at all found for pip
Exception information:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 126, in main
    self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 223, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 948, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 152, in find_requirement
    raise DistributionNotFound('No distributions at all found for %s' % req)
DistributionNotFound: No distributions at all found for pip

Попробуйте ниже

pip install --proxy=user:pass@server:port <package Name>

например

pip install --proxy=http://10.10.10.150/accelerated_pac_base.pac quandl 

Ответ или решение

К сожалению, у вас возникли сложности с обновлением pip за прокси-сервером на Ubuntu 12.04. Давайте внимательно разберем проблему и предложим возможные решения.

Проблема

Вы используете Ubuntu 12.04 с установленным pip версии 1.0. Эта версия имеет известную ошибку, которая мешает корректной работе через прокси-серверы, что делает обновление pip более сложной задачей. Необходимо обновить pip, чтобы продолжить использовать Python-библиотеки. Однако, вы сталкиваетесь с ошибками, связанными с подключением и доступом к PyPI через прокси.

Причины проблемы

  1. Неверная конфигурация прокси: Возможно, параметры вашего прокси-сервера указаны неверно или не поддерживаются текущей версией pip.
  2. Устаревшая версия Python и setuptools: Используемая вами версия Python 2.7 и устаревшие setuptools могут конфигурировать пути и зависимости, которые не совместимы с сегодняшними требованиями pip.
  3. Неправильные параметры командной строки: Команды, которые вы используете для соединения через прокси-сервер, могут быть некорректными или отсутствуют необходимые компоненты.

Примеры попыток решения

Исходя из приведенных вами логов и команд, выполнение команды pip --proxy=$http_proxy install -U pip завершилось неудачей, так как pip не может подключиться к базовому URL-адресу индекса http://pypi.python.org/simple/. Аналогично, команда python ~/Downloads/get-pip.py --proxy=$http_proxy показала ошибку ProxyError при попытке установить соединение через прокси.

Возможные решения и примеры применения

  1. Конфигурация прокси:

    • Убедитесь, что переменные окружения вашего прокси корректно настроены. В bash могут быть добавлены следующие строки в .bashrc:
      export http_proxy="http://user:password@proxyhost:proxyport"
      export https_proxy="http://user:password@proxyhost:proxyport"
  2. Обновление setuptools и pip:

    • Попробуйте обновить setuptools перед обновлением pip. Выполните:
      wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
      python get-pip.py --proxy=http://user:password@proxyhost:proxyport 
  3. Альтернативные индексы:

    • Вы можете использовать альтернативный индекс для загрузки пакетов pip, например, Mirror:
      pip install --proxy=http://user:password@proxyhost:proxyport --index-url=https://pypi.org/simple --trusted-host pypi.org --upgrade pip
  4. Использование системных инструментов:

    • В некоторых случаях использование системных инструментов может быть полезным. Помните, что из-за использования устаревших версий также вероятно, что системные репозитории обновились и содержат новые версии пакетов:
      sudo apt-get update
      sudo apt-get install python-pip

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

  5. Использование виртуальных окружений:

    • Это может быть удобным для работы с различными версиями pip и python в рамках одного Linux-сервера:
      python -m venv your-env
      source your-env/bin/activate
      pip install --upgrade pip
    • Внутри этого виртуального окружения можно выполнять установку пакетов оптимизировано, не влияя на системные конфигурации.
  6. Исправление временных файлов и кеша:

    • Иногда убирание старых конфигураций и кеша может помочь в новых установках:
      rm -rf ~/.cache/pip
  7. Проверка сетевых подключений:

    • Проверьте доступность pypi.python.org и правильность работы вашего прокси с помощью базовых команд сетевой диагностики, таких как ping, curl или wget.

Заключая вышеизложенное, перед тем как переходить к сложным мерам решения, стоит убедиться, что все коммуникации корректно настроены и функционируют должным образом. Надеюсь, что эти шаги помогут вам обновить pip и продолжить использовать удобство Python-библиотек на вашей системе. Если все еще столкнетесь с трудностями, уверитесь, что версия Ubuntu поддерживается и обновите её при первой возможности, так как поддержка со стороны разработчиков обеспечит совместимость необходимых инструментов развития.

Оцените материал
Добавить комментарий

Капча загружается...