2016-10-08 71 views
7

我試圖使用命令pip install BeautifulSoup4安裝BeautifulSoup4,按照這裏的BS文件:PIP安裝BS4給_socketobject錯誤

https://www.crummy.com/software/BeautifulSoup/#Download

我使用的是Mac OS X 10.7.5和Python 2.7。 12

當我運行在終端的命令我得到的錯誤:

AttributeError: '_socketobject' object has no attribute 'set_tlsext_host_name' 

任何人都可以建議我做錯了嗎?提前致謝。

編輯: 根據意見,我試圖運行sudo pip install pyopenssl但是我得到相同的'socketobject'錯誤。

+0

PIP安裝-U pyOpenSSL –

+0

@MaximilianPeters同樣的錯誤不幸 – User632716

+0

http://stackoverflow.com/questions/29849892/error-installing-any-module-using-pip-but-easy-install-works –

回答

0

https://stackoverflow.com/a/31576259/3579910

嘗試:

sudo apt-get purge python-openssl 
sudo apt-get install libffi-dev 
sudo pip install pyopenssl 

顯然,你不能重複投票,如果有一個開放的賞金。

背景:

That happend because Ubuntu 12.04 (that is my server's OS) has old pyOpenSSL library which not accept attribute 'set_tlsext_host_name'. For fix that, you need to add dependence pyOpenSSL >= 0.13. On Ubuntu for update pyOpenSSL use pip, you also need to install libffi-dev and remove python-openssl by apt.

Source


在Mac上,你可以自制更換apt-get的呼叫:按照安裝homebrew的說明。

+0

任何想法沖泡相當於沖泡? @TemporalWolf – User632716

+0

@tompreston我會檢查出這個[SO回答](http://stackoverflow.com/a/7333289/3579910) – TemporalWolf

1

據我所知,系統中安裝的pyopenssl軟件包版本不是最新的。升級:

sudo pip install --upgrade pyopenssl 

或者刪除它,並安裝最新的虛擬環境:

$ sudo pip uninstall pyopenssl 
$ # activate virtual environment 
(myvirtualenv) $ pip install --upgrade pyopenssl 
0

或者,您也可以安裝蟒蛇Python從:https://www.continuum.io/downloads

此安裝包括BS出來的該框作爲您將使用的大多數通用庫。另外它使庫安裝非常容易。

0

我使用OS X 10.12python 2.7.10

sudo easy_install BeautifulSoup4 
sudo easy_install pyopenssl 

他們都工作得很好。

1

「這happend因爲你的操作系統有舊pyOpenSSL庫,是不一個接受屬性‘set_tlsext_host_name’。 爲了解決這個問題,你需要添加依賴pyOpenSSL> = 0.13。

$ brew purge python-openssl 
$ brew install libffi-dev 
$ brew install pyOpenSSL 

讓我知道如果這不清楚或者它不適合你。

+0

謝謝,但我可以在Mac上運行apt-get? – User632716