2017-01-15 3 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

[Mac OS XにpyOpenSSLをインストールするにはどうすればいいですか?](http://stackoverflow.com/q/14361569)、[opensslをpython 2.7で更新する](http://stackoverflow.com/q/18752409)、 [古いバージョンのPythonを参照しているPython](http://stackoverflow.com/q/24323858)、[OS XでのPythonとOpenSSLバージョン参照の問題](http://stackoverflow.com/q/37690054)、[Python 3.3とMacでのPyOpenSSLのインストール](http://stackoverflow.com/q/21899573)、[Pythonを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。しかし、 'opensslは' OpenSSL 0.9.8zh、2016年1月14日で、1.0.2jバージョンは生成されません。どんな考え? – user2989813

答えて

0

問題の核心は、sudo pip install pyopenssl --user --upgradepip ...「非sudoは」最初の見ていないディレクトリにインストールしたことがあります。それが起こる理由はたくさんあります。

pip install --user ...を決してsudoで実行する必要がないことを理解することがこの問題を単純化する第1の態様です。 --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はPythonのインポート機構が見られないディレクトリに新しいバージョンのpyopensslをインストールする可能性があります。 これを修正するには、pipがパッケージをインストールする場所を知る必要があります。デフォルトのpip出力がパッケージがインストールされていると伝えない場合はpip install --user --verbose ..を使ってみてください。 このパスをPYTHONPATHに追加する必要があります。...pipに置き換えて置き換えます(/Users/your_username/のどこかにあるはずです)。

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

それが動作する場合、あなたのPythonランタイムは、常に最初にそのディレクトリからパッケージをロードされるように、あなたのbash .profileに上記export ..を追加します。

関連する問題