Rather than triggering a flamewar on what DI framework is "best" (I don't think there's a definitive general solution), this question is meant to discuss good alternatives for projects of different kinds, no matter the programming language, based on professional experience.
Some issues I'd like to lean about:

What were the most important features you were looking for in a DI framework? Why was it what best fitted your project?
What does the DI framework have that others do not? What makes it special?
Why would you not pick the same DI framework for other different projects?
How did the DI framework improve the testability and configuration flexibility of the application (especially on different environments: development, staging, production, etc.)?
Many DI frameworks are said to be simple. But how easy is it to maintain the configuration of dependencies? (For example: Is it too verbose or difficult to read and modify?)

I may eventually accept one answer, but there is no "best answer" on this topic. I would appreciate anyone's experience that is useful to share.
I'm particularly interested in experience with DI frameworks in Python and PHP, where I think the choice isn't very straight-forward. The question is language-agnostic, though.
I usually choose frameworks, whether DI or otherwise, using the following criteria:

Pick a framework that has the required functionality for the job at hand
Prefer frameworks that are simple - The less "extra" stuff not required for 1., the better.
Prefer frameworks "built-in" to the language/framework you're already using.
Prefer frameworks that I already know and have used

Usually, by working through the above, it's pretty obvious.  For example, the last DI framework I choose was MEF, mainly because it was a C# project (point 3.), it's simple, and it did what I needed it to do.
Inversion of Control: Have you ever had to decide what Dependency Injection framework is best for a project? Which one did you pick and why?