2015-04-24 6 views
3

Я получаю эту ошибку, когда пытаюсь установить любой модуль с помощью pip, но easy_install работает отлично. У меня нет прокси-серверов, настроенных на моем компьютере Ubuntu 12.04. Раньше он работал нормально, просто dnt знал, как он внезапно прекратил работу.Ошибка Установка любого модуля с помощью pip, но easy_install работает

Это ошибка, я получаю, во время работы sudo pip install <any_package_name>:

Exception: 
Traceback (most recent call last): 
    File "/tmp/tmpOA61D3/pip.zip/pip/basecommand.py", line 246, in main 
    status = self.run(options, args) 
    File "/tmp/tmpOA61D3/pip.zip/pip/commands/install.py", line 342, in run 
    requirement_set.prepare_files(finder) 
    File "/tmp/tmpOA61D3/pip.zip/pip/req/req_set.py", line 345, in prepare_files 
    functools.partial(self._prepare_file, finder)) 
    File "/tmp/tmpOA61D3/pip.zip/pip/req/req_set.py", line 290, in _walk_req_to_install 
    more_reqs = handler(req_to_install) 
    File "/tmp/tmpOA61D3/pip.zip/pip/req/req_set.py", line 415, in _prepare_file 
    req_to_install, finder) 
    File "/tmp/tmpOA61D3/pip.zip/pip/req/req_set.py", line 376, in _check_skip_installed 
    finder.find_requirement(req_to_install, self.upgrade) 
    File "/tmp/tmpOA61D3/pip.zip/pip/index.py", line 425, in find_requirement 
    all_versions = self._find_all_versions(req.name) 
    File "/tmp/tmpOA61D3/pip.zip/pip/index.py", line 349, in _find_all_versions 
    index_locations = self._get_index_urls_locations(project_name) 
    File "/tmp/tmpOA61D3/pip.zip/pip/index.py", line 323, in _get_index_urls_locations 
    page = self._get_page(main_index_url) 
    File "/tmp/tmpOA61D3/pip.zip/pip/index.py", line 789, in _get_page 
    return HTMLPage.get_page(link, session=self.session) 
    File "/tmp/tmpOA61D3/pip.zip/pip/index.py", line 878, in get_page 
    "Cache-Control": "max-age=600", 
    File "/tmp/tmpOA61D3/pip.zip/pip/_vendor/requests/sessions.py", line 476, in get 
    return self.request('GET', url, **kwargs) 
    File "/tmp/tmpOA61D3/pip.zip/pip/download.py", line 367, in request 
    return super(PipSession, self).request(method, url, *args, **kwargs) 
    File "/tmp/tmpOA61D3/pip.zip/pip/_vendor/requests/sessions.py", line 464, in request 
    resp = self.send(prep, **send_kwargs) 
    File "/tmp/tmpOA61D3/pip.zip/pip/_vendor/requests/sessions.py", line 576, in send 
    r = adapter.send(request, **kwargs) 
    File "/tmp/tmpOA61D3/pip.zip/pip/_vendor/cachecontrol/adapter.py", line 46, in send 
    resp = super(CacheControlAdapter, self).send(request, **kw) 
    File "/tmp/tmpOA61D3/pip.zip/pip/_vendor/requests/adapters.py", line 370, in send 
    timeout=timeout 
    File "/tmp/tmpOA61D3/pip.zip/pip/_vendor/requests/packages/urllib3/connectionpool.py", line 544, in urlopen 
    body=body, headers=headers) 
    File "/tmp/tmpOA61D3/pip.zip/pip/_vendor/requests/packages/urllib3/connectionpool.py", line 341, in _make_request 
    self._validate_conn(conn) 
    File "/tmp/tmpOA61D3/pip.zip/pip/_vendor/requests/packages/urllib3/connectionpool.py", line 762, in _validate_conn 
    conn.connect() 
    File "/tmp/tmpOA61D3/pip.zip/pip/_vendor/requests/packages/urllib3/connection.py", line 238, in connect 
    ssl_version=resolved_ssl_version) 
    File "/tmp/tmpOA61D3/pip.zip/pip/_vendor/requests/packages/urllib3/contrib/pyopenssl.py", line 296, in ssl_wrap_socket 
    cnx.set_tlsext_host_name(server_hostname) 
AttributeError: '_socketobject' object has no attribute 'set_tlsext_host_name' 

ответ

7

Я нашел потенциальное решение here. Вот соответствующая цитата:

«Это случилось потому, что Ubuntu 12.04 (то есть мой сервер OS) имеет старую pyOpenSSL библиотеки, которая не принимает атрибут„set_tlsext_host_name“ Для исправления, необходимо добавить зависимость pyOpenSSL> = 0,13 .. На Ubuntu для обновления pyOpenSSL используйте pip, вам также необходимо установить libffi-dev и удалить python-openssl по apt. "

$ sudo apt-get purge python-openssl 
$ sudo apt-get install libffi-dev 
$ sudo pip install pyOpenSSL 

Сообщите мне, если это неясно или не работает для вас.

+0

Работал! как очарование, спасибо! –

+0

Это также работает для аналогичной проблемы с Centos 6.4. Происходит такая же ошибка, связанная с SSL ... решение заключается в установке libffi-devel с помощью yum, а затем с помощью easy_install для обновления pyopenssl. – gerryk