Установка pip с использованием get_pip.py SNIMissingWarning

Я пытаюсь установить pip на мой Mac Yosemite 10.10.5 с использованием файла get_pip.py, но у меня возникает следующая проблема

Bachirs-MacBook-Pro:Downloads bachiraoun$ sudo python get-pip.py 
The directory '/Users/bachiraoun/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo -H flag.
The directory '/Users/bachiraoun/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo -H flag.
Collecting pip
/tmp/tmpOofplD/pip.zip/pip/_vendor/requests/packages/urllib3/util/ssl_.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
/tmp/tmpOofplD/pip.zip/pip/_vendor/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  Could not fetch URL https://pypi.python.org/simple/pip/: There was a problem confirming the ssl certificate: [Errno 1] _ssl.c:510: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm - skipping
  Could not find a version that satisfies the requirement pip (from versions: )
No matching distribution found for pip

В соответствии с моим сообщением об ошибке и urllib3 моя проблема в том, что у меня установлена ​​версия для установки на python раньше, чем раньше 2.7.9, но мой python равен 2.7.10, как вы можете видеть

Bachirs-MacBook-Pro:docs bachiraoun$ python
Python 2.7.10 (default, Jul 14 2015, 19:46:27) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.version_info
sys.version_info(major=2, minor=7, micro=10, releaselevel='final', serial=0)
>>> 

Я проверил, что мой openssl установлен, и кажется, что он ОК

Bachirs-MacBook-Pro:docs bachiraoun$ brew install openssl
Warning: openssl-1.0.2f already installed

Не знаете, как это исправить, любая идея?

Ответы

Ответ 1

необходимо установить:

pip install pyopenssl ndg-httpsclient pyasn1

ссылка: http://urllib3.readthedocs.org/en/latest/security.html#openssl-pyopenssl

По умолчанию используется стандартный модуль ssl library. К сожалению, существует несколько ограничений, которые рассматриваются PyOpenSSL:

(Python 2.x) Поддержка SNI. (Python 2.x-3.2) Отключение сжатия для уменьшения атаки CRIME.

Чтобы использовать привязки OpenSSL Python, вам нужно установить необходимые пакеты:

pip install pyopenssl ndg-httpsclient pyasn1

Ответ 2

У вас есть проблема с привилегиями папки. Папка

/Users/ME/Library/Caches/pip/http

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

Ответ 3

Проблема разрешения каталогов

Строки одного и двух выходных данных говорят о наличии проблемы с привилегиями папки. Вы можете увидеть, нужно ли изменять разрешения, выполнив ls -a /Users/ME/Library и проверяя, равны ли разрешения равным drwx------+. Если это не так, вы можете решить проблему, используя chmod для изменения разрешений: chmod 700 /Users/ME/Library.

Однако, поскольку первая строка выполнения (Bachirs-MacBook-Pro:Downloads ME$) имеет ME$ в качестве префикса, вы не должны иметь эту проблему, поскольку она указывает. Вы также используете get_pip.py как root, поэтому разрешения не должны быть препятствием. Проблема становится понятнее при просмотре второй строки выполнения (Bachirs-MacBook-Pro:Downloads bachiraoun$), кажется, что script выполняется как bachiraoun, а не ME, что объясняет, почему была ошибка, которая была там. Я предполагаю, что вы вошли в оболочку ненормальным способом, так как это не должно меняться. Не могли бы вы дать более подробную информацию о том, как вы вошли в оболочку, и не могли бы вы повторно запустить script?

SSL

В маловероятном случае, если разрешения не были проблемой, это может быть и так. Четвертая строка, по-видимому, предполагает, что существует проблема с ssl. Если у вас установлен доморощенный, вы можете сделать brew install openssl. Обратите внимание на отсутствие sudo, поскольку доморощенный не играет хорошо с ним. После этого снова попробуйте запустить script. Опять же, это скорее всего ошибка разрешений, и вы должны попытаться разрешить это в первую очередь.