I wonder if this will cause much strife. I run ArchLinux, for which the default /usr/bin/python is Python 3. Often I run into issues with (admittedly software not from the repos) which uses the
#!/usr/bin/python
shebang, and expects it to reference Python 2, thus causing breakage.
Ubuntu won't be changing that - /usr/bin/python will still mean Python 2. It just won't be installed by default (if they meet their goal, which looks doubtful for this cycle).
Interesting, that's not recommended by python devs. Ubuntu follows the guideline of keeping /usr/bin/python as Python 2 (which will not be installed by default), and /usr/bin/python3 as Python 3.
Exactly. Whenever a script is made, it should have #!/usr/bin/env interpreter# as the first line.
#!/usr/bin/env python2
#!/usr/bin/env python3
Explicitly declaring the required version fixes that problem. In arch, most of the PKGBUILDs will have a line to sed the explicit line into the file in place of the generic python line.
Oh, sure, that wasn't intended as a dig on Django. My point was just the fact that you couldn't run it under Python3 was likely a factor in the slow adoption.
Let me expand: we didn't make it to have python3 be the only shipped python in 12.10 because of several major dependencies. The stumbling blocks (as far as I know---when the rubber hits the road other things might pop up) were twisted, protobuf, and xapian. We have contracted out the work of porting the first two (the results of these efforts will be shipped in 12.10, in universe), and are moving away from the third one.
you mean that it uses python 3 for the system, i assume? surely python 2 will be installable from the software centre, just like python3 can be installed now?
First sentence is false, second is true (by itself).
Python 3 isn't becoming `/usr/bin/python` - it will be `/usr/bin/python3` and the Python programs that are shipped on the CD will use that. If you thought Python 3 was going to become `/usr/bin/python`, then yes, that would cause backwards compatibility issues.