Thank you very much, Tom, for pointing that out. I had no idea django was looking for that environment variable. Following your direction, I checked, and discover that they are all indeed default to "undefined". I'm using OpenBSD 5.3 on macppc, which explains why they were not set, as opposed to on Linux.
$ python -m locale Locale aliasing: Locale defaults as determined by getdefaultlocale(): ------------------------------------------------------------------------ Language: (undefined) Encoding: (undefined) Locale settings on startup: ------------------------------------------------------------------------ LC_NUMERIC ... Language: (undefined) Encoding: (undefined) LC_MESSAGES ... Language: (undefined) Encoding: (undefined) LC_MONETARY ... Language: (undefined) Encoding: (undefined) LC_COLLATE ... Language: (undefined) Encoding: (undefined) LC_CTYPE ... Language: (undefined) Encoding: (undefined) LC_TIME ... Language: (undefined) Encoding: (undefined) Locale settings after calling resetlocale(): ------------------------------------------------------------------------ LC_NUMERIC ... Language: (undefined) Encoding: (undefined) LC_MESSAGES ... Language: (undefined) Encoding: (undefined) LC_MONETARY ... Language: (undefined) Encoding: (undefined) LC_COLLATE ... Language: (undefined) Encoding: (undefined) LC_CTYPE ... Language: (undefined) Encoding: (undefined) LC_TIME ... Language: (undefined) Encoding: (undefined) Locale settings after calling setlocale(LC_ALL, ""): ------------------------------------------------------------------------ LC_NUMERIC ... Language: (undefined) Encoding: (undefined) LC_MESSAGES ... Language: (undefined) Encoding: (undefined) LC_MONETARY ... Language: (undefined) Encoding: (undefined) LC_COLLATE ... Language: (undefined) Encoding: (undefined) LC_CTYPE ... Language: (undefined) Encoding: (undefined) LC_TIME ... Language: (undefined) Encoding: (undefined) Number formatting: 123456789 is 123456789 3.14 is 3.14 $ On Monday, 17 June 2013 04:02:43 UTC-7, Tom Evans wrote: > > On Sun, Jun 16, 2013 at 8:06 AM, Ed <draw...@gmail.com <javascript:>> > wrote: > > Hello Dear Django Group. > > > > My first day with Django, I just got it installed on my computer, and am > > trying to follow along with the first tutorial: > > https://docs.djangoproject.com/en/1.4/intro/tutorial01/ > > > > I have Django's development server up, and I'm able to see the "It > worked!" > > Django welcome page. Where I ran into the dead end is at the following > > section: > > > > "The syncdb command looks at the INSTALLED_APPS setting and creates any > > necessary database tables according to the database settings in your > > settings.py file. You’ll see a message for each database table it > creates, > > and you’ll get a prompt asking you if you’d like to create a superuser > > account for the authentication system. Go ahead and do that." > > > > Up to this point, I've followed the tutorial line by line. However, > after I > > ran the command "python manage.py syncdb", I got the error message > below, > > and it seems to be an internal error to Django. Has anyone else > encountered > > this issue, and how did you resolve it? Any feedback or insight is > > appreciated. Thank you! > > > > > > $ python manage.py syncdb > > Creating tables ... > > Creating table auth_permission > > Creating table auth_group_permissions > > Creating table auth_group > > Creating table auth_user_user_permissions > > Creating table auth_user_groups > > Creating table auth_user > > Creating table django_content_type > > Creating table django_session > > Creating table django_site > > > > You just installed Django's auth system, which means you don't have any > > superusers defined. > > Would you like to create one now? (yes/no): yes > > Traceback (most recent call last): > > File "manage.py", line 10, in <module> > > execute_from_command_line(sys.argv) > > File > > > "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", > > > line 443, in execute_from_command_line > > utility.execute() > > File > > > "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", > > > line 382, in execute > > self.fetch_command(subcommand).run_from_argv(self.argv) > > File > > "/usr/local/lib/python2.7/site-packages/django/core/management/base.py", > > line 196, in run_from_argv > > self.execute(*args, **options.__dict__) > > File > > "/usr/local/lib/python2.7/site-packages/django/core/management/base.py", > > line 232, in execute > > output = self.handle(*args, **options) > > File > > "/usr/local/lib/python2.7/site-packages/django/core/management/base.py", > > line 371, in handle > > return self.handle_noargs(**options) > > File > > > "/usr/local/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", > > > > line 110, in handle_noargs > > emit_post_sync_signal(created_models, verbosity, interactive, db) > > File > > "/usr/local/lib/python2.7/site-packages/django/core/management/sql.py", > line > > 189, in emit_post_sync_signal > > interactive=interactive, db=db) > > File > > "/usr/local/lib/python2.7/site-packages/django/dispatch/dispatcher.py", > line > > 172, in send > > response = receiver(signal=self, sender=sender, **named) > > File > > > "/usr/local/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", > > > > line 73, in create_superuser > > call_command("createsuperuser", interactive=True, database=db) > > File > > > "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", > > > line 150, in call_command > > return klass.execute(*args, **defaults) > > File > > "/usr/local/lib/python2.7/site-packages/django/core/management/base.py", > > line 232, in execute > > output = self.handle(*args, **options) > > File > > > "/usr/local/lib/python2.7/site-packages/django/contrib/auth/management/commands/createsuperuser.py", > > > > line 70, in handle > > default_username = get_default_username() > > File > > > "/usr/local/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", > > > > line 105, in get_default_username > > default_username = get_system_username() > > File > > > "/usr/local/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", > > > > line 85, in get_system_username > > return getpass.getuser().decode(locale.getdefaultlocale()[1]) > > TypeError: decode() argument 1 must be string, not None > > $ > > > > Look at the final, breaking, line of code in the stack trace: > > return getpass.getuser().decode(locale.getdefaultlocale()[1]) > > The error says that the argument to decode() is None. The argument to > decode() is the 2nd value returned by locale.getdefaultlocale(), which > returns a 2-tuple of (locale, charset), which is determined (on linux) > by examining the value of the environment variable LANG. > > If LANG is unset or empty (or the "C" locale) then these values are > undefined. Django relies on these values being defined to understand > input that is given to it. > > Set a proper LANG in your environment. Use "python -m locale" to check > what python sees it as. Common values for LANG are like "en_GB.UTF-8" > or "pt_BR.UTF-8". > > Cheers > > Tom > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at http://groups.google.com/group/django-users. For more options, visit https://groups.google.com/groups/opt_out.