Assuming Python-like modules, module-level globals are worse for encapsulation.
1. A function can access module-level state without having been explicitly passed a reference to it.
2. You can't create additional instances of module-level state. For example, if your app server uses a module-level global for the server listening socket, you can't run two app server instances in the same process.