Возможно ли объявить глобальную переменную внутри функции, чтобы она была доступна везде?
Элементарно:
def f():
    global v
    v = 'Значение глобальной переменной'

f()
print(v)
Но не нужно. Глобальное переменные - зло, а появление в коде оператора global - всегда маркер говнокода.
Возможно. Вопрос - зачем? Если переменную нужно использовать за пределами функции  - есть оператор return