1
所以我正在與errbot合作,並用python3.5啓動了virtualenv。當我運行errbot命令我得到這個錯誤Python 3.5 OpenSSL錯誤
from OpenSSL import crypto
File "/Users/me/workspace/chatbotv2/chatbot_venv3/lib/python3.5/site-packages/OpenSSL/__init__.py", line 8, in <module>
from OpenSSL import rand, crypto, SSL
File "/Users/me/workspace/chatbotv2/chatbot_venv3/lib/python3.5/site-packages/OpenSSL/rand.py", line 12, in <module>
from OpenSSL._util import (
File "/Users/me/workspace/chatbotv2/chatbot_venv3/lib/python3.5/site-packages/OpenSSL/_util.py", line 6, in <module>
from cryptography.hazmat.bindings.openssl.binding import Binding
File "/Users/me/workspace/chatbotv2/chatbot_venv3/lib/python3.5/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 250, in <module>
_verify_openssl_version(Binding.lib.SSLeay())
File "/Users/me/workspace/chatbotv2/chatbot_venv3/lib/python3.5/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 230, in _verify_openssl_version
"You are linking against OpenSSL 0.9.8, which is no longer "
這是「問到死」的話題就那麼那麼很明顯,我是阿貝爾得到儘快解決。我跟着這個answer。但是當我運行brew link --force openssl
我得到這個:
Warning: Refusing to link: openssl
Linking keg-only openssl means you may end up linking against the insecure,
deprecated system OpenSSL while using the headers from Homebrew's openssl.
Instead, pass the full include/library paths to your compiler e.g.:
-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib
對於這點我嘗試:
export CPPFLAGS='-I/usr/local/opt/openssl/include'
export LDFLAGS='-L/usr/local/opt/openssl/lib'
這個我很失落後,不知道該怎麼辦。當我嘗試:python -c "import ssl; print (ssl.OPENSSL_VERSION)"
我仍然得到OpenSSL 0.9.8zg 14 July 2015
。 我在OSX上
兩件很快速的事情:1)你嘗試在連接之前強制brew更新openssl嗎? 'brew install openssl'然後'brew鏈接openssl --force' 2)你在路徑中檢查了多個openssl實例嗎? –
是的,我沒有更新openssl到'openssl-1.0.2h_1'。當我在我的virtualenv中執行'$ echo $ PYTHONPATH'時,它會返回一個空字符串 – newkid101
我需要一些關於您的路徑的更多信息。試試這個:輸入'which openssl',然後看看'/ usr/bin'和'/ usr/local/bin'中是否有openssl。我猜想/希望你會在兩者中找到一個。 –