【发布时间】:2016-01-23 20:02:42
【问题描述】:
我正在处理这个book
使用此代码
@classmethod
def setUpClass(cls):
for arg in sys.argv:
if 'liveserver' in arg:
cls.server_url = 'http://' + arg.split('=')[1]
return
super().setUpClass()
cls.server_url=cls.live_server_url
当我尝试使用 python3 manage.py test functional_tests 开始我的功能测试时,我收到此错误
ERROR: setUpClass (functional_tests.tests.NewVisitorTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/USERNAME/Desktop/dev/tddwp/chap8/functional_tests/tests.py", line 14, in setUpClass
super().setUpClass()
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/test/testcases.py", line 1189, in setUpClass
raise cls.server_thread.error
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/test/testcases.py", line 1091, in run
(self.host, port), QuietWSGIRequestHandler)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/core/servers/basehttp.py", line 117, in __init__
super(WSGIServer, self).__init__(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/socketserver.py", line 430, in __init__
self.server_bind()
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/core/servers/basehttp.py", line 121, in server_bind
super(WSGIServer, self).server_bind()
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/wsgiref/simple_server.py", line 50, in server_bind
HTTPServer.server_bind(self)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/http/server.py", line 135, in server_bind
socketserver.TCPServer.server_bind(self)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/socketserver.py", line 441, in server_bind
self.socket.bind(self.server_address)
OSError: [Errno 48] Address already in use
我试过了 *重新启动我的机器 *从 github 下载 repo 并从那里运行以消除我可能犯的任何无意错误 *使用lsof查看是否可以找到它正在运行的端口并杀死它(我找不到它)。
我没有想法。有谁知道可能出了什么问题?
【问题讨论】:
-
可能使用不同的端口 - 大数字 - 比如 8000
-
这意味着其他东西已经在那个端口上监听了。可能是另一个 Web 服务器。尝试使用不同的端口。
-
你有想过吗?使用 Crtl-C 退出我自己的服务器后出现此错误。
-
@MadPhysicist 他们是对的,使用不同的端口。不知何故,我忘了关闭它。对不起。