I'm having the exact same experience! I just started using Python 3.4 (soon 3.5) for a new, major project and I'm pretty excited about it. I expected to find a bunch of roadblocks -- like being in a parallel universe or something. But, well, everything totally works!
The only package I found that didn't work with our Python 3 infrastructure was Fabric, but that's really easy to spin out (and will be fixed soon).
There's really no reason to not use Python 3 for (almost) all new projects at this point. It's exciting! I expect engineers who're used to developing in Python 3 will start to feel embarrassed that they're still running 2, and we'll port over all of those internal codebases (like at Dropbox :P).
How did you replace Fabric? I've hacked things together with some branches of Fabric + devs that just about work on Python 3, but it's not really satisfactory.
I replaced it with Ansible when I was doing a 2 to 3 transition about a year ago. It wasn't easy, but learning a real infrastructure automation tool (which Fabric is not) was worth it.
I thought Ansible wasn't ported to Python 3 [0] and actually had a lot of weird bugs when I last tried to use it. It is one of the few reasons I keep Python 2 installed on my laptop.
You rarely have straight dependencies on fabric from your app though. Personally I simply treat it as a command line tool, and `pip install` it system wide. It just happened to have been written in Python 2, and to require script files written in Python 2, but it's orthogonal to the apps/scripts I write with Python 3. Maybe your use case is different.
The only package I found that didn't work with our Python 3 infrastructure was Fabric, but that's really easy to spin out (and will be fixed soon).
There's really no reason to not use Python 3 for (almost) all new projects at this point. It's exciting! I expect engineers who're used to developing in Python 3 will start to feel embarrassed that they're still running 2, and we'll port over all of those internal codebases (like at Dropbox :P).