Search code examples
pythonportbottleweb-frameworks

How to avoid port error already used in web framework bottle?


In Python3 I have a program to test the web framework bottle:

from bottle import route, run

@route('/')
def index():
    return "olá pessoas"

if __name__ == '__main__':
    run()

I am running the programs inside a virtualenv, in the command line. But there is this error:

(live-de-python) reinaldo@reinaldo-Inspiron-5567:~/Documentos/Code/live-de-python/repo$ python3 basic_bottle.py
Bottle v0.12.13 server starting up (using WSGIRefServer())...
Listening on http://127.0.0.1:8080/
Hit Ctrl-C to quit.

Traceback (most recent call last):
  File "basic_bottle.py", line 11, in <module>
    run()
  File "/home/reinaldo/Documentos/Code/live-de-python/lib/python3.6/site-packages/bottle.py", line 3127, in run
    server.run(app)
  File "/home/reinaldo/Documentos/Code/live-de-python/lib/python3.6/site-packages/bottle.py", line 2781, in run
    srv = make_server(self.host, self.port, app, server_cls, handler_cls)
  File "/usr/lib/python3.6/wsgiref/simple_server.py", line 153, in make_server
    server = server_class((host, port), handler_class)
  File "/usr/lib/python3.6/socketserver.py", line 453, in __init__
    self.server_bind()
  File "/usr/lib/python3.6/wsgiref/simple_server.py", line 50, in server_bind
    HTTPServer.server_bind(self)
  File "/usr/lib/python3.6/http/server.py", line 136, in server_bind
    socketserver.TCPServer.server_bind(self)
  File "/usr/lib/python3.6/socketserver.py", line 467, in server_bind
    self.socket.bind(self.server_address)
OSError: [Errno 98] Address already in use

I'm using Ubuntu. Does the error say that port 8080 is already in use? But I have no other program open

Please, does anyone know what it can be?


Solution

  • The port 8080 is already used by an other process. You probably launched the script and forgot to end it. Check with

    $ ps -aux | grep basic_bottle
    

    Or simply change the port with run(port=8090).