Opened 8 years ago

Closed 7 years ago

Last modified 7 years ago

#18961 closed Bug (invalid)

django 1.5 and os x snow leopard default python

Reported by: leftmoose Owned by: nobody
Component: Uncategorized Version: master
Severity: Normal Keywords: osx, snow leopard
Cc: mhaligowski Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no


os x using python 2.6.1 (default on snow leopard)

$ startproject testproj && cd testproj

$ ./ validate
TypeError: Error when calling the metaclass bases
    __init__() keywords must be strings

Change History (9)

comment:1 Changed 8 years ago by Karen Tracey

Resolution: invalid
Status: newclosed

Per minimum Python level for Django 1.5 will be Python 2.6.5. As I recall this was a conscious choice when choosing the strategy for porting to Python 3. I'm not a Mac person, I have no idea how old snow leopard is? But unless a radical change is considered for how we're going to support Python 3, its default 2.6.1 Python is too old for Django 1.5. I assume there is some way to install a newer Python?

comment:2 Changed 7 years ago by jeroen.pulles@…

Resolution: invalid
Status: closednew

Rephrasing the issue: Django 1.5 doesn't work on Snow Leopard 10.6.8 out of the box. I'm surprised that this issue is closed with an invalid resolution. Snow Leopard is a common platform (for developers), after all; It's not that old (sold 2009-2011).

Adding an extra python on Snow Leopard isn't for novices, I think. Installing a fresh 2.7 from the website will likely give some developers headaches with PATH's and missing modules. If a novice installs Python 3 for the reason that he/she wants to work with the latest Django, he/she will probably be in an even far worse situation (db drivers, apps, and whatnot that doesn't work yet on 3).

I think that a little guidance would be appreciated.

The current TypeError is vague and no indication to the actual problem. Would it be possible to do an explicit version check and error message for older Pythons?

comment:3 Changed 7 years ago by Karen Tracey

Is there no way to update the installed Python to 2.6.5 rather than adding an "extra Python"?

It's pretty late in the cycle to add a version check, we're past release candidate stage...

comment:4 Changed 7 years ago by mhaligowski

"System" Python on OS X is provided by Apple itself and as Snow Leopard is no longer maintined, one shouldn't expect that it will be updated any more.

In the other hand, installing 2.7 is a common operation for Python developers and is widely discussed in the web. Moreover, the installer fixes the paths automatically.

comment:5 Changed 7 years ago by mhaligowski

Cc: mhaligowski added

comment:6 Changed 7 years ago by Liam

Resolution: invalid
Status: newclosed

I don't think this is a valid defect as Django 1.5 explicitly requires Python 2.6.5+.

Suggest the solution is to upgrade OS X to 10.7 or 10.8 which ship with Python 2.7, or use django 1.4 or upgrade Python.

Snow leopard is two versions behind the latest.

comment:7 Changed 7 years ago by anonymous

For many people, "upgrade OS X to 10.7 or 10.8" requires buying a new computer. Upgrading Python on 10.6 is a nightmare. That leaves django 1.4 as the only realistic option for people who want to work with Django on the machine they have, instead of spending hundreds of dollars or drowning in the mess that Apple has made of Python environments. Nevertheless, agree that this is not a "bug" because Django 1.5 explicitly requires 2.6.5+

comment:8 Changed 7 years ago by Aymeric Augustin

It's easy enough to install another Python version with MacPorts or Homebrew. I have five Python versions on my Mac to test Django against them. I'm running Django 1.3 to 1.7 on Python 2.4 to 3.3 on OS X.6 without any issues.

comment:9 Changed 7 years ago by Elena Williams

Hi anonymous, We've just encountered this bug. You can install python2.7 *over* the default python2.6.1 installation, which seems to be buggy for Django 1.5+.

Python2.6.1 explodes terribly when you try to use run Django 1.5+, just install python version >2.6 for Mac OSX from here:

Note: See TracTickets for help on using tickets.
Back to Top