Nas palavras dos próprios Heroku:
Os aplicativos Heroku esperam a estrutura de diretório do aplicativo na raiz do repositório. Se seu aplicativo estiver dentro de um subdiretório em seu repositório, ele não será executado quando for enviado ao Heroku.
Isso é obviamente um problema se você já criou a estrutura do seu projeto e particularmente não sente que está tudo bem que o Heroku ordene que você a altere.
Então … para consertar, usamos o novo (ish) módulo de subárvore git que foi comprometido com o branch git da linha principal em abril de 2012. Isso basicamente nos permite enviar apenas um subdiretório do seu repo para o heroku durante a implantação.
Dada a estrutura do projeto:
--/
----/.git
----/build
----/docs
----/pythonapp
----/----/requirements.txt
Na raiz do seu repo , você pode executar o seguinte comando:
git subtree push --prefix pythonapp heroku master
Isso enviará apenas a pasta pythonapp para o remoto.
Se você deseja ler mais sobre o módulo de subárvore, este artigo é um ótimo começo, pois é do autor do próprio módulo.