2015-10-25 50 views
1

我希望能夠在支持SSL的OS X 10.11上構建Python 2.7.10。目前_ssl模塊無法構建,因爲Python無法檢測到openssl,這似乎是因爲Apple在10.11 SDK中不再包含OpenSSL。蘋果的建議是應用程序使用SecureTransport SSL,但據我所見,Python不支持SecureTransport。在OSX 10.11上編譯支持SSL的Python 2.7.10

在「開箱即用」的OSX安裝中僅使用XCode命令行工具進行安裝時,是否不再可以使用OpenSSL進行構建?我不想訴諸包管理器或管理編譯自己的OpenSSL版本。自從至少OS X 10.5以來,Apple已經將OpenSSL作爲基礎安裝的一部分,因此期待它在那裏並不瘋狂,我認爲。

有趣的是,蘋果公司自己的Python 2.7.10版本具有SSL支持:

$ /usr/bin/python 
Python 2.7.10 (default, Aug 22 2015, 20:33:39) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.1)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import _ssl 
>>> _ssl 
<module '_ssl' from '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lin-dynload/_ssl.so'> 

回答

2

嚴格地說,你不需要建立OpenSSL的,你只需要頭可用,然後編譯Python的反對頭。擁有openssl可以提供其他很好的工具,在解決SSL相關問題時可能會派上用場。

除了手工做上述(或使用類似brew),沒有第三條路,像Python只支持OpenSSL,以便其SSL支持:

該模塊提供傳輸層安全性(通常稱爲「安全套接字層」的 )加密和對等身份驗證 用於網絡套接字(客戶端和服務器端)的設施。這個 模塊使用OpenSSL庫。它可在所有現代Unix 系統,Windows,Mac OS X和其他平臺上使用,只要在該平臺上安裝OpenSSL,就可以使用 。

你應該知道,在OSX編譯OpenSSL的有自己的一套的問題(在FAQ列出)​​ - 所以它可能是值得的,同時堅持的軟件包管理器。

+0

感謝「在OSX上編譯OpenSSL有自己的一系列問題」,我花了好幾個小時才放棄了...... –