The problem with unit tests is that:
1. They must be there in the first place
2. They must be exhaustive (a few tests here or there wont help much)
3. They must be correct (if test passes, it does not necesarily checks what it should)
4. Tests must be maintained and updated together with other refactored code (and it is quite easy to miss required test changes, leading to the case 3.)
5. Even if you have lots of tests and they are well maintained and correct, it still pretty much guaranteed that not all edge cases would be covered (and writing good and robust tests is really hard)
In the end, unit tests happen to be just another tool helping to improve code quality, but it does not ensure full correctness. And as it relies on human implementing them right, it does not make unit tests a very trustworthy tool. I trust compiler more than myself or my fellow colleague.
Static typing (and static analysis based on it) is also yet another tool. But being perfomed by computer, it is much more robust and reliable. While unit tests quality may vary very widely, compiler static checks are consistently thorough and accurate (and if they are not, you have quite a big problem)
Of course static typing is not a replacement for unit tests, but in that area where they overlap, static compiler checks do a better job. And if you really care about your code quality, you should use as much helping tools as possible.
I like Python and it is usually my language of choice for scripting (mostly because of a large variety of libraries available), but for a large and complex codebase I would rather choose something more strictly typed