2017-01-15 14 views
1

Я нахожусь на Mac El Capitan. Моя система показывает, что я застрял на PyOpenSSl версии 0.13.1. Когда я обновляюсь до 16.2.0, обновление будет успешным. Однако, когда я проверяю версию, она все еще находится на 0.13.1. Почему это?PyOpenSSl версия 0.13.1 после обновления апгрейда

MacBook-Air:include$ sudo pip install pyopenssl --user --upgrade 
Password: 
The directory '/Users/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's -H flag. 
The directory '/Users/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's -H flag. 
Collecting pyopenssl 
    Downloading pyOpenSSL-16.2.0-py2.py3-none-any.whl (43kB) 
    100% |████████████████████████████████| 51kB 1.1MB/s 
Requirement already up-to-date: cryptography>=1.3.4 in /Library/Python/2.7/site-packages (from pyopenssl) 
Collecting six>=1.5.2 (from pyopenssl) 
    Downloading six-1.10.0-py2.py3-none-any.whl 
Requirement already up-to-date: cffi>=1.4.1 in /Library/Python/2.7/site-packages (from cryptography>=1.3.4->pyopenssl) 
Requirement already up-to-date: pyasn1>=0.1.8 in /Library/Python/2.7/site-packages (from cryptography>=1.3.4->pyopenssl) 
Collecting setuptools>=11.3 (from cryptography>=1.3.4->pyopenssl) 
    Downloading setuptools-32.3.1-py2.py3-none-any.whl (479kB) 
    100% |████████████████████████████████| 481kB 1.3MB/s 
Requirement already up-to-date: idna>=2.0 in /Library/Python/2.7/site-packages (from cryptography>=1.3.4->pyopenssl) 
Requirement already up-to-date: ipaddress in /Library/Python/2.7/site-packages (from cryptography>=1.3.4->pyopenssl) 
Requirement already up-to-date: enum34 in /Library/Python/2.7/site-packages (from cryptography>=1.3.4->pyopenssl) 
Requirement already up-to-date: pycparser in /Library/Python/2.7/site-packages (from cffi>=1.4.1->cryptography>=1.3.4->pyopenssl) 
Installing collected packages: six, pyopenssl, setuptools 

А потом проверить версию, что это неправильно одна:

Successfully installed pyopenssl-16.2.0 setuptools-32.3.1 six-1.10.0 
MacBook-Air:include$ pip show pyopenssl 
Name: pyOpenSSL 
Version: 0.13.1 
Summary: Python wrapper module around the OpenSSL library 
Home-page: http://pyopenssl.sourceforge.net/ 
Author: Jean-Paul Calderone 
Author-email: [email protected] 
License: APL2 
Location: /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python 
Requires: 
+0

[Как установить pyOpenSSL на Mac OS X?] (Http://stackoverflow.com/q/14361569), [Обновление openssl в python 2.7] (http://stackoverflow.com/q/18752409), [Python ссылается на старую версию SSL] (http://stackoverflow.com/q/24323858), [Исходная ссылка на версию Python и OpenSSL в OS X] (http://stackoverflow.com/q/37690054), [Python 3.3 и Установка PyOpenSSL на Mac] (http://stackoverflow.com/q/21899573), [Использование Python с homebrew в OS X] (http://stackoverflow.com/q/25441252) и т. Д. – jww

+0

Спасибо за предложения. Я попытался создать соответствующую символическую ссылку, но все еще имею проблемы. У меня есть следующая ссылка: staff 44 Jan 16 01:11 openssl -> /usr/local/Cellar/openssl/1.0.2j/bin/openssl. Однако, «which openssl» дает «OpenSSL 0.9.8zh 14 января 2016», а не версию 1.0.2j. Любая идея почему? – user2989813

ответ

0

Ядро проблемы заключается в том, что sudo pip install pyopenssl --user --upgrade была установка в каталог, где «не Судо» pip ... не смотрел первый , Есть много причин, почему это может произойти.

Первый аспект для упрощения этой проблемы заключается в понимании того, что pip install --user ... никогда не должно запускаться с sudo. Опция --user означает установку в каталог пользовательских пакетов (она должна быть ниже /Users/your_username/), и для этого не нужны расширенные привилегии.

Если вы попробуете pip install --user --upgrade pyopenssl без sudo, он должен решить проблему.

Старый pyopenssl-0.13.1 будет по-прежнему существовать в /System/Library/Frameworks/Python.framework/Versions/2.7/..., однако новый должен теперь существовать в /Users/your_username/... и должен быть найден первым механизмом импорта Python.

Однако существует разумная вероятность, что pip install --user устанавливает новую версию pyopenssl в каталоге, где не импортируется оборудование импорта Python. Чтобы исправить это, вам необходимо знать, где pip устанавливает пакет. Попытайтесь использовать pip install --user --verbose .., если выход по умолчанию в коннекторе не указывает, что пакет был установлен. Затем вам нужно добавить этот путь в PYTHONPATH, например, с ..., где pip установил пакет (он должен быть под /Users/your_username/ где-то).

export PYTHONPATH="/Users/your_username/Library/...:$PYTHONPATH" 
pip show pyopenssl 

Если это работает, добавьте выше export .. к вашему Баш .profile так, что ваша среда Python всегда загружаются пакеты из этого каталога первой.

 Смежные вопросы

  • Нет связанных вопросов^_^