Fix “ValueError: unknown locale: UTF-8″ under Mac OS X 10.7 – Lion
Posted: February 16th, 2012 | Author: patrick91 | Filed under: Python | 12 Comments »Today I was trying the new Django 1.4 Beta 1 and when I run the syncdb command I got this error:
(app)patrick@app$ 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 Creating table django_admin_log 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 9, in execute_from_command_line(sys.argv) File "/Users/patrick/.virtualenvs/app/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line utility.execute() File "/Users/patrick/.virtualenvs/app/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/Users/patrick/.virtualenvs/app/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv self.execute(*args, **options.__dict__) File "/Users/patrick/.virtualenvs/app/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute output = self.handle(*args, **options) File "/Users/patrick/.virtualenvs/app/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle return self.handle_noargs(**options) File "/Users/patrick/.virtualenvs/app/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 "/Users/patrick/.virtualenvs/app/lib/python2.7/site-packages/django/core/management/sql.py", line 189, in emit_post_sync_signal interactive=interactive, db=db) File "/Users/patrick/.virtualenvs/app/lib/python2.7/site-packages/django/dispatch/dispatcher.py", line 172, in send response = receiver(signal=self, sender=sender, **named) File "/Users/patrick/.virtualenvs/app/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", line 73, in create_superuser call_command("createsuperuser", interactive=True) File "/Users/patrick/.virtualenvs/app/lib/python2.7/site-packages/django/core/management/__init__.py", line 150, in call_command return klass.execute(*args, **defaults) File "/Users/patrick/.virtualenvs/app/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute output = self.handle(*args, **options) File "/Users/patrick/.virtualenvs/app/lib/python2.7/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 63, in handle default_username = get_default_username() File "/Users/patrick/.virtualenvs/app/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", line 105, in get_default_username default_username = get_system_username() File "/Users/patrick/.virtualenvs/app/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", line 85, in get_system_username return getpass.getuser().decode(locale.getdefaultlocale()[1]) File "/Users/patrick/.virtualenvs/app/lib/python2.7/locale.py", line 496, in getdefaultlocale return _parse_localename(localename) File "/Users/patrick/.virtualenvs/app/lib/python2.7/locale.py", line 428, in _parse_localename raise ValueError, 'unknown locale: %s' % localename ValueError: unknown locale: UTF-8
More precisely the error is
ValueError: unknown locale: UTF-8
After doing a little search on Google I found this ticket on the Django bug tracker.
The solution was really simple I just needed to export some variables in my bash enviroment. So I edited my .bash_profile file adding these lines:
export LANG="it_IT.UTF-8" export LC_COLLATE="it_IT.UTF-8" export LC_CTYPE="it_IT.UTF-8" export LC_MESSAGES="it_IT.UTF-8" export LC_MONETARY="it_IT.UTF-8" export LC_NUMERIC="it_IT.UTF-8" export LC_TIME="it_IT.UTF-8" export LC_ALL=
where it_IT.UTF-8 should be your locale string. To test if it worked for you just reload the console and run this code:
python -c 'import locale; print(locale.getdefaultlocale());'
You should get something like this:
('it_IT', 'UTF8')
I haven’t found any good solution to create a holed div without using images, so I tried to use canvas as a background and it worked nicely.