title: Flask and Flask-SocketIO integration and import errors
body: <p>I am trying to integrate Flask-SocketIO with my Flask application. </p>
  
  <p>For some reason I am getting an import error that is triggered by the 
  <code>from .. import socketio</code> that I have in my events.py and I am not sure why.</p>
  
  <p>I would greatly appreciate any help provided.</p>
  
  <p>app.py</p>
  
  <pre><code>from factory import create_app
  app = create_app()
  </code></pre>
  
  <p>factory.py</p>
  
  <pre><code>from flask import Flask
  from flask.ext.socketio import SocketIO
  from flask.ext.login import LoginManager
  import os
  from celery import Celery
  
  lm = LoginManager()
  socketio = SocketIO()
  lm.login_view = 'main.login'
  lm.session_protection = 'strong'
  
  
  def create_app():
      app = Flask(__name__)
      app.config.from_object(os.environ.get('APP_CONFIG'))  # export APP_CONFIG=settings.Development
      lm.init_app(app)
  
      from project.main import main as main_blueprint
  
      app.register_blueprint(main_blueprint)
      socketio.init_app(app)
  
      return app
  </code></pre>
  
  <p>main/____init____.py</p>
  
  <pre><code>from flask import Blueprint
  
  main = Blueprint('main', __name__)
  import views, events
  </code></pre>
  
  <p>main/events.py</p>
  
  <pre><code># from __future__ import absolute_import
  from uuid import uuid4
  from flask import current_app, session, request
  from flask.ext.socketio import emit, disconnect
  from .. import socketio
  
  @socketio.on('status', namespace='/events')
  def events_message(message):
      print 'socketio.on: status'
      emit('status', {'status': message['status']})
  
  
  @socketio.on('disconnect request', namespace='/events')
  def disconnect_request():
      print 'socketio.on: disconnect request'
      emit('status', {'status': 'Disconnected!'})
      disconnect()
  
  
  @socketio.on('connect', namespace='/events')
  def events_connect():
      print 'socketio.on: connect'
      websocket_id = str(uuid4())
      session['websocket_id'] = websocket_id
      current_app.clients[websocket_id] = request.namespace
      emit('websocket_id', {'websocket_id': websocket_id})
  </code></pre>