我刚刚在我的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模块尝试使用协议不支持的“地址族”(无论是什么)。这个例外可以更模糊吗?
有人知道我在这里缺少什么吗?
答案 0 :(得分:2)
看起来测试用例确实需要启用IPv6。因此,在未启用IPv6支持的系统上将失败。检查ip a s
的输出以查看VM是否具有IPv6地址集,例如通常以fe80::
开头。地址族可以是IPv4的AF_INET或IPv6的AF_INET6。
实际上,这是一个测试用例错误。