PyCUDA is a binding library that provides access to CUDA's Python API by Andreas Klöckner. The main features include automatic cleanup, which is tied to an object's lifetime, thus preventing leaks, convenient abstraction over modules and buffers, full access to the driver, and built-in error handling. It is also very light.
The project is open source under the MIT license, the documentation is very clear, and many different sources found online can provide help and support. The main purpose of PyCUDA is to let a developer invoke CUDA with minimal abstraction from Python, and it also supports CUDA metaprogramming and templatization.