title: Making python imports more structured?
body: <p>The code works but looks messy so this might be a code review question where I didn't study enough of pythons conventions to know how to structure and organize the beginning of my file more pythonic. I basically just pasted in imports so they could be duplicates, not needed anymore or wrongly ordered. Can you advice anything how to structure my imports or can I leave code like this to focus on my own functions? </p>
  
  <p>File 1:</p>
  
  <pre><code>from __future__ import with_statement
  import logging
  import os
  from google.appengine.api.users import is_current_user_admin, UserNotFoundError
  import time
  import cgi
  import geo.geotypes
  import main
  import captcha
  from google.appengine import api
  from google.appengine.runtime import DeadlineExceededError
  from google.appengine.ext.webapp.util import run_wsgi_app
  from google.appengine.ext.blobstore import BlobInfo
  from google.appengine.ext.db import djangoforms
  from django import forms
  from django.core.exceptions import ValidationError
  from django.utils import translation
  from datetime import datetime, timedelta
  os.environ['DJANGO_SETTINGS_MODULE'] = 'conf.settings'
  from django.conf import settings
  from django.template import RequestContext
  from util import I18NHandler
  import util
  from google.appengine.api import urlfetch, taskqueue
  from django.template.defaultfilters import register
  from django.utils import simplejson as json
  from functools import wraps
  from google.appengine.api import urlfetch, taskqueue, users, images
  from google.appengine.ext import db, webapp, search, blobstore
  from google.appengine.ext.webapp import util, template
  from google.appengine.runtime import DeadlineExceededError
  from random import randrange
  import Cookie
  import base64
  import cgi
  import conf
  import datetime
  import hashlib
  import hmac
  import logging
  import time
  import traceback
  import urllib
  import twitter_oauth_handler
  from twitter_oauth_handler import OAuthClient
  from geo.geomodel import GeoModel
  from django.utils.translation import gettext_lazy as _
  webapp.template.register_template_library('common.templatefilters')
  </code></pre>
  
  <p>File 2 (there's are several instructions here I don't understand):</p>
  
  <pre><code>from __future__ import with_statement
                  # -*- coding: utf-8 -*-
  import facebookconf
  import os, wsgiref.handlers
  os.environ[u'DJANGO_SETTINGS_MODULE'] = u'conf'
  import util
  import time
  import logging
  import urllib
  import wsgiref.handlers
  import appengine_admin
  import cgi
  import captcha
  import re
  import hashlib
  import string
  import hmac
  import twitter_oauth_handler
  from twitter_oauth_handler import OAuthClient
  os.environ['DJANGO_SETTINGS_MODULE'] = 'conf.settings'
  from geo.geomodel import GeoModel
  from google.appengine.dist import use_library
  from google.appengine.ext import blobstore, webapp, db, search
  # template import must be run before other Django modules imports
  from google.appengine.ext.webapp import blobstore_handlers, util, template
  from google.appengine.ext.blobstore import BlobInfo
  from google.appengine.ext.webapp.util import run_wsgi_app
  from google.appengine.api import files, images, mail, memcache, users
  from django.conf import settings
  # Force Django reload
  settings._target = None
  from util import I18NHandler, FacebookBaseHandler
  from google.appengine.ext.db import djangoforms
  from django.utils import translation
  from django.utils import simplejson as json
  from django.contrib.formtools.preview import FormPreview
  from random import choice
  from urllib import quote
  from google.appengine.api.users import is_current_user_admin, UserNotFoundError
  from google.appengine.api import urlfetch
  import random
  import datetime
  from datetime import timedelta
  from django.utils.translation import gettext_lazy as _
  from django.template import defaultfilters
  </code></pre>
  
  <p>How do I know when an import is no longer used since the function was moved or removed? Why can't I specify the same import for multiple files at one place and I must spec the same import in both files? I can imagine moveing handling imports to a separate file i.e. <code>imports.yaml</code> to specify imports for all python files in that directory or likewise. </p>