Hacker News new | past | comments | ask | show | jobs | submit login

Both.

It is possible, and not too difficult in fact, to write a single codebase that runs under both Python 2 and Python 3. Which is what Django has done. The same code runs the same under 2.7 or 3.3 or 3.4.




Thanks for the reply.

Are there any guidelines or "best practices" for writing code for both 2.7 and 3.4?


http://python-future.org/compatible_idioms.html

This is a pretty comprehensive guide. It does rely on the future lib, which is a wrapper around six and a few others to make it easier, but you can also just write your own minimal lib for things that need to have:

    if py2:
         pass # Py2 specific line here
    else:
         pass # Py3 stuff here
I think Django has chosen the approach of having their own minimal compatibility layer, iirc.


Here is Django's documentation, including notes on the compatibility stuff we ship:

https://docs.djangoproject.com/en/1.7/topics/python3/




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: