2016-01-23 78 views
1

我使用此代碼如何解決OSERROR:[錯誤48]地址已在使用

@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測試functional_tests功能測試工作這book

我得到這個錯誤

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上,並從運行重新消除我可能用lsof * lsof查看是否可以找到它正在運行的端口並殺死它(我無法找到它),從而消除任何無意的錯誤。

我沒有想法。任何人都知道什麼可能是錯的?

+0

也許使用不同的端口 - 大數字 - 如8000 – furas

+0

這意味着其他東西已經在該端口上監聽。可能是另一個Web服務器。嘗試使用不同的端口。 – Keith

+0

你有沒有想過它?使用Crtl-C退出我自己的服務器後,出現此錯誤。 – MadPhysicist

回答

0

使用不同的端口:D。根據furas和Keith