Python 3.4.1 make test失败:错误:test_connect_starttls(test.test_smtpnet.SmtpTest)

时间:2014-07-22 02:47:16

标签: python ssl

我刚刚在我的centos 6.4虚拟机上下载了python 3.4.1,并按照自述文件中的说明进行操作。首先我做了./configure,然后make,然后进行测试。

当我运行make test时出现错误,我不知道为什么,我只是按照指示完全按照说明进行操作。这是输出:

test test_smtpnet failed -- Traceback (most recent call last):
  File "/usr/local/Python-3.4.1/Lib/test/test_smtpnet.py", line 30, in test_connect_starttls
    server = smtplib.SMTP(self.testServer, self.remotePort)
  File "/usr/local/Python-3.4.1/Lib/smtplib.py", line 242, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/local/Python-3.4.1/Lib/smtplib.py", line 321, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/local/Python-3.4.1/Lib/smtplib.py", line 292, in _get_socket
    self.source_address)
  File "/usr/local/Python-3.4.1/Lib/socket.py", line 509, in create_connection
    raise err
  File "/usr/local/Python-3.4.1/Lib/socket.py", line 495, in create_connection
    sock = socket(af, socktype, proto)
  File "/usr/local/Python-3.4.1/Lib/socket.py", line 123, in __init__
    _socket.socket.__init__(self, family, type, proto, fileno)
OSError: [Errno 97] Address family not supported by protocol
368 tests OK.
1 test failed:
    test_smtpnet
7 tests altered the execution environment:
    test_calendar test_float test_locale test_site test_strptime
    test_types test_warnings
12 tests skipped:
    test_curses test_devpoll test_gdb test_kqueue test_msilib
    test_ossaudiodev test_startfile test_tk test_ttk_guionly
    test_winreg test_winsound test_zipfile64
Re-running failed tests in verbose mode
Re-running test 'test_smtpnet' in verbose mode
test_connect_starttls (test.test_smtpnet.SmtpTest) ... ERROR
test_connect (test.test_smtpnet.SmtpSSLTest) ... ok
test_connect_default_port (test.test_smtpnet.SmtpSSLTest) ... ok
test_connect_using_sslcontext (test.test_smtpnet.SmtpSSLTest) ... ok
test_connect_using_sslcontext_verified (test.test_smtpnet.SmtpSSLTest) ... ok

======================================================================
ERROR: test_connect_starttls (test.test_smtpnet.SmtpTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/local/Python-3.4.1/Lib/test/test_smtpnet.py", line 30, in test_connect_starttls
    server = smtplib.SMTP(self.testServer, self.remotePort)
  File "/usr/local/Python-3.4.1/Lib/smtplib.py", line 242, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/local/Python-3.4.1/Lib/smtplib.py", line 321, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/local/Python-3.4.1/Lib/smtplib.py", line 292, in _get_socket
    self.source_address)
  File "/usr/local/Python-3.4.1/Lib/socket.py", line 509, in create_connection
    raise err
  File "/usr/local/Python-3.4.1/Lib/socket.py", line 495, in create_connection
    sock = socket(af, socktype, proto)
  File "/usr/local/Python-3.4.1/Lib/socket.py", line 123, in __init__
    _socket.socket.__init__(self, family, type, proto, fileno)
OSError: [Errno 97] Address family not supported by protocol

----------------------------------------------------------------------
Ran 5 tests in 42.864s

FAILED (errors=1)
test test_smtpnet failed
make: *** [test] Error 1

所以似乎_socket模块尝试使用协议不支持的“地址族”(无论是什么)。这个例外可以更模糊吗?

有人知道我在这里缺少什么吗?

1 个答案:

答案 0 :(得分:2)

看起来测试用例确实需要启用IPv6。因此,在未启用IPv6支持的系统上将失败。检查ip a s的输出以查看VM是否具有IPv6地址集,例如通常以fe80::开头。地址族可以是IPv4的AF_INET或IPv6的AF_INET6。 实际上,这是一个测试用例错误。