a variable @Python asignada por un módulo externo es accesible para imprimir pero no para asignar en el módulo de destino

Tengo dos archivos, uno está en la raíz web y otro es un bootstrap ubicado una carpeta encima de la raíz web (por cierto, esto es programación CGI).

El archivo de índice en la raíz web importa el bootstrap y le asigna una variable, luego llama a una función para inicializar la aplicación. Todo hasta aquí funciona como se esperaba.

Ahora, en el archivo bootstrap puedo imprimir la variable, pero cuando intento asignar un valor a la variable se produce un error. Si quita la declaración de asignación no se arrojan errores.

Tengo mucha curiosidad acerca de cómo funciona el alcance en esta situación. Puedo imprimir la variable, pero no puedo asignarla. Esto está en Python 3.

index.py

# Import modules
import sys
import cgitb;

# Enable error reporting
cgitb.enable()
#cgitb.enable(display=0, logdir="/tmp")

# Add the application root to the include path
sys.path.append('path')

# Include the bootstrap
import bootstrap

bootstrap.VAR = 'testVar'

bootstrap.initialize()

bootstrap.py

def initialize():
    print('Content-type: text/html\n\n')
    print(VAR)
    VAR = 'h'
    print(VAR)

Gracias

Edit: el mensaje de error

UnboundLocalError: local variable 'VAR' referenced before assignment 
      args = ("local variable 'VAR' referenced before assignment",) 
      with_traceback = <built-in method with_traceback of UnboundLocalError object at 0x00C6ACC0>

Respuestas a la pregunta(2)

Su respuesta a la pregunta