2017-01-15 2 views
1

Ich bin auf dem Mac El Capitan. Mein System zeigt mich auf PyOpenSSl Version 0.13.1 stecken. Wenn ich auf 16.2.0 aktualisiere, ist das Upgrade erfolgreich. Allerdings, wenn ich die Version überprüfe, ist es immer noch auf 0.13.1. Warum ist das?PyOpenSSl Version 0.13.1 nach PIP-Upgrade

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 

Und dann die Version überprüft, dann ist es die falsche:

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

[Wie installiere ich pyOpenSSL unter Mac OS X?] (Http://stackoverflow.com/q/14361569), [Aktualisieren von openssl in python 2.7] (http://stackoverflow.com/q/18752409), [Python referenziert alte SSL-Version] (http://stackoverflow.com/q/24323858), [Python und OpenSSL-Versionsreferenz unter OS X] (http://stackoverflow.com/q/37690054), [Python 3.3 und Installieren von PyOpenSSL auf einem Mac] (http://Stackoverflow.com/q/21899573), [Verwenden von Python mit Homebrew auf OS X] (http://StackOverflow.com/q/25441252), etc ... – jww

+0

Danke für die Vorschläge. Ich habe versucht, den richtigen Symlink zu erstellen, aber immer noch Probleme. Ich habe den folgenden Link: Mitarbeiter 44 Jan 16 01:11 openssl -> /usr/local/Cellar/openssl/1.0.2j/bin/openssl. 'What openssl' ergibt 'OpenSSL 0.9.8zh 14 Jan 2016', nicht die Version 1.0.2j. Irgendeine Idee warum? – user2989813

Antwort

0

Der Kern des Problems ist, dass sudo pip install pyopenssl --user --upgrade wurde in ein Verzeichnis installieren, auf dem die „nicht-sudo“ pip ... nicht zuerst schauen . Es gibt viele Gründe, warum das passieren könnte.

Der erste Aspekt zur Vereinfachung dieses Problems besteht darin, dass pip install --user ... nie mit sudo ausgeführt werden muss. Die Option --user bedeutet, dass Sie in das Verzeichnis der Benutzerpakete installieren (es sollte sich irgendwo unter /Users/your_username/ befinden), und erweiterte Berechtigungen sind dafür nicht erforderlich.

Wenn Sie pip install --user --upgrade pyopenssl ohne Sudo versuchen, sollte es das Problem lösen.

Die alte pyopenssl-0.13.1 wird noch in /System/Library/Frameworks/Python.framework/Versions/2.7/... existieren, aber die neue sollte jetzt in /Users/your_username/... existieren und sollte zuerst von der Python-Import-Maschinerie gefunden werden.

Allerdings gibt es eine vernünftige Chance, dass pip install --user die neue Version von pyopenssl in einem Verzeichnis installiert, in dem die Python-Import-Maschinerie nicht aussieht. Um dies zu beheben, müssen Sie wissen, wo pip das Paket installiert. Versuchen Sie, pip install --user --verbose .. zu verwenden, wenn die Standard-Pip-Ausgabe nicht sagt, dass Sie das Paket installiert haben. Dann müssen Sie diesen Pfad zu PYTHONPATH, wie die folgenden mit ... ersetzt mit wo pip installiert das Paket (es sollte unter /Users/your_username/ irgendwo sein).

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

Wenn das funktioniert, fügen Sie die oben export .. auf Ihre bash .profile, so dass Ihre Python-Laufzeit immer zuerst Pakete aus diesem Verzeichnis zu laden.

Verwandte Themen