Вопрос или проблема
Я попробовал все рекомендации из другого вопроса, но они не работают для меня: 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 через прокси.
Причины проблемы
- Неверная конфигурация прокси: Возможно, параметры вашего прокси-сервера указаны неверно или не поддерживаются текущей версией
pip
. - Устаревшая версия Python и
setuptools
: Используемая вами версия Python 2.7 и устаревшиеsetuptools
могут конфигурировать пути и зависимости, которые не совместимы с сегодняшними требованиямиpip
. - Неправильные параметры командной строки: Команды, которые вы используете для соединения через прокси-сервер, могут быть некорректными или отсутствуют необходимые компоненты.
Примеры попыток решения
Исходя из приведенных вами логов и команд, выполнение команды pip --proxy=$http_proxy install -U pip
завершилось неудачей, так как pip
не может подключиться к базовому URL-адресу индекса http://pypi.python.org/simple/. Аналогично, команда python ~/Downloads/get-pip.py --proxy=$http_proxy
показала ошибку ProxyError
при попытке установить соединение через прокси.
Возможные решения и примеры применения
-
Конфигурация прокси:
- Убедитесь, что переменные окружения вашего прокси корректно настроены. В bash могут быть добавлены следующие строки в
.bashrc
:export http_proxy="http://user:password@proxyhost:proxyport" export https_proxy="http://user:password@proxyhost:proxyport"
- Убедитесь, что переменные окружения вашего прокси корректно настроены. В bash могут быть добавлены следующие строки в
-
Обновление
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
- Попробуйте обновить
-
Альтернативные индексы:
- Вы можете использовать альтернативный индекс для загрузки пакетов
pip
, например,Mirror
:pip install --proxy=http://user:password@proxyhost:proxyport --index-url=https://pypi.org/simple --trusted-host pypi.org --upgrade pip
- Вы можете использовать альтернативный индекс для загрузки пакетов
-
Использование системных инструментов:
- В некоторых случаях использование системных инструментов может быть полезным. Помните, что из-за использования устаревших версий также вероятно, что системные репозитории обновились и содержат новые версии пакетов:
sudo apt-get update sudo apt-get install python-pip
Однако здесь стоит отметить, что ваш дистрибутив может больше не поддерживать актуальные версии программ.
- В некоторых случаях использование системных инструментов может быть полезным. Помните, что из-за использования устаревших версий также вероятно, что системные репозитории обновились и содержат новые версии пакетов:
-
Использование виртуальных окружений:
- Это может быть удобным для работы с различными версиями
pip
иpython
в рамках одного Linux-сервера:python -m venv your-env source your-env/bin/activate pip install --upgrade pip
- Внутри этого виртуального окружения можно выполнять установку пакетов оптимизировано, не влияя на системные конфигурации.
- Это может быть удобным для работы с различными версиями
-
Исправление временных файлов и кеша:
- Иногда убирание старых конфигураций и кеша может помочь в новых установках:
rm -rf ~/.cache/pip
- Иногда убирание старых конфигураций и кеша может помочь в новых установках:
-
Проверка сетевых подключений:
- Проверьте доступность pypi.python.org и правильность работы вашего прокси с помощью базовых команд сетевой диагностики, таких как
ping
,curl
илиwget
.
- Проверьте доступность pypi.python.org и правильность работы вашего прокси с помощью базовых команд сетевой диагностики, таких как
Заключая вышеизложенное, перед тем как переходить к сложным мерам решения, стоит убедиться, что все коммуникации корректно настроены и функционируют должным образом. Надеюсь, что эти шаги помогут вам обновить pip
и продолжить использовать удобство Python-библиотек на вашей системе. Если все еще столкнетесь с трудностями, уверитесь, что версия Ubuntu поддерживается и обновите её при первой возможности, так как поддержка со стороны разработчиков обеспечит совместимость необходимых инструментов развития.