6 ms·
Later: "10 awesome libraries you can't use because they haven't been ported to Python 3"
by doreo 12y ago
Later: "10 awesome libraries you can't use because they haven't been ported to Python 3"
- bakareika 12y agoYup, this certainly needs work. Myself, I was very skeptical, until one day I decided to start my new project in Python 3 and quickly realized that everything isn't that much ruined. Couple of pull requests here and there, could be worse (after reading some of the more... opinionated blog posts I expected something truly catastrophic). But the new goodness in 3.4 is totally worth it, in my opinion.
- pixelmonkey 12y agoThis web application tracks the Python 3 compatibility status of Python's most popular libraries. https://python3wos.appspot.com/ https://python3wos.appspot.com/ It's mostly green. If there is a red one you really need, it's probably not hard to port it.
- rch 12y agoBoto, pika, protobuf and thrift are still red, and probably nontrivial to port. It would be interesting to know if str/bytes problems are the main issue though.
- drdaeman 12y agoWhat about https://github.com/GreatFruitOmsk/protobuf-py3 https://github.com/GreatFruitOmsk/protobuf-py3? I don't really see what could be non-trivial about Protocol Buffers. The encoding's simple to the extent one could probably hack a minimal working implementation over a weekend or another. That is, unless you need not the data format, but the very exact Google's library (which, to my tastes, is severely unpythonic and has an quite weird and bloated codebase - which is probably the issue with porting, but sadly is a dependency for some other libraries).
- rch 12y agoYes, sticking with Google's library is the limitation. Without the official library, there are probably better ways forward anyway.
- scrollaway 12y agoCan you cite me 10 awesome and useful libraries that haven't been ported to Python 3 and don't have reasonably equal alternatives? I know there are some critical libraries to some niches who don't particularly care about recent versions. I know there's a fair amount of libraries that don't work on Python 3 purely because the author used print instead of print(). I know there are apps that can't port to Python 3 because they were designed with some core Python 2 functionality a decade ago (usually unicode/bytes related). None of these matter to real world devs. User-facing apps don't matter, easy-to-port libs don't matter (fork & fix), niche libs don't matter (if your niche doesn't care about Python 3, you're either here to troll or you're not actually here). I know it's very "in" to say that Python 3 is dead-on-arrival and all that but it's simply untrue. Anyone who uses a Python 3-based Linux distribution will understand that. Most new devs use Python 2 because they are too lazy to install Python 3 and assume their code won't work; and as soon as they hit a SyntaxError in print they complain that "Python 3 is hard". Here are the facts: https://python3wos.appspot.com/ https://python3wos.appspot.com/ You see all these libraries in red? Most of them depend on each other (Twisted is a big one as well as another I forget about) and have excellent alternatives available. Good luck finding 10 that match my criteria; I can't even find one.
- dagw 12y agoif your niche doesn't care about Python 3, you're either here to troll or you're not actually here Please explain. As someone who will be writing Python 2 for the foreseeable future due to niche libraries, I really don't understand what you're trying to get at.
- Derbasti 12y agoI was in your shoes a few times. I wanted to use Python3, but sime niche library I depended on was Python2 only. And you know what, I simply ported them. Took me a week or two, and I learned a lot. I have been using Python3 ever since.
- AhtiK 12y agoOften one does not need 10 reasons, 1 is enough if it's critical enough. For my case the missing libs in py3 world are * boto (AWS interface) * pika (RabbitMQ interface) Yes, supervisor too, but it can run in a separate Python 2 env. It's also about fear that next package that we need to progress faster might not support py3. But confidence builds over time and the list of Python 3 packages will only improve over time. It will converge to one single Python 3, there is absolutely no doubt.
- est 12y agoSomebody please port MySQLdb and make it asyncio-compatible.