I'll just point out that your assumption that I'm only doing a "git checkout" is completely unwarranted.
Given that in the comment to which that was a reply, you opined that 'It doesn't seem like setting up a build server just to do "git checkout; rm .git" is worth the effort.', it's not completely unwarranted.
The part that the build server can handle is the "git checkout" part, maybe create a virtualenv with the dependencies. In that case, doing a "git checkout" is enough for deployment, because you're already assuming that the rest of the deployment happens elsewhere.
Or create a .deb or .rpm package out of the python code.
In a non-trivial setup, just doing a 'git checkout' isn't enough for a deployment.