1

I have problem with create new DB in Django:

bash -cl "/Library/Frameworks/Python.framework/Versions/2.7/bin/python /Applications/PyCharm.app/helpers/pycharm/django_manage.py syncdb /Users/hollywoord/PycharmProjects/Gizeh"
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
Creating table Raketa_poll
Creating table Raketa_choice

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 "/Applications/PyCharm.app/helpers/pycharm/django_manage.py", line 20, in <module>
    run_module(manage_file, None, '__main__', True)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 176, in run_module
    fname, loader, pkg_name)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 82, in _run_module_code
    mod_name, mod_fname, mod_loader, pkg_name)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/Users/hollywoord/PycharmProjects/Gizeh/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
    utility.execute()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle
    return self.handle_noargs(**options)
  File "/Library/Frameworks/Python.framework/Versions/2.7/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 "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/sql.py", line 189, in emit_post_sync_signal
    interactive=interactive, db=db)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/dispatch/dispatcher.py", line 172, in send
    response = receiver(signal=self, sender=sender, **named)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", line 73, in create_superuser
    call_command("createsuperuser", interactive=True, database=db)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/__init__.py", line 150, in call_command
    return klass.execute(*args, **defaults)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 70, in handle
    default_username = get_default_username()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", line 105, in get_default_username
    default_username = get_system_username()
  File "/Library/Frameworks/Python.framework/Versions/2.7/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

Process finished with exit code 1

I read many message there, people say its trouble with locale, but i check my locale and its ok: en_US.UTF-8

What else could it be?

Mac OS 10.8, Python 2.7.3, Django 1.4.1

Thanks

tenorsax
  • 21,123
  • 9
  • 60
  • 107
  • What happens if you go to the proper folder and run that command by hand instead of in Pycharm? – Tom Aug 04 '12 at 18:35
  • Im pretty sure this is a known problem that jetbrains has not fixed yet. I just syncdb in terminal instead of in pycharm. Also, it works with python 2.6 its only 2.7 that crashes. – lciamp Aug 04 '12 at 19:26
  • did it in the hands of the console, turned out! But the admin interface does not run on http://127.0.0.1:8000/admin/, seems to do something else? Exception Type: DatabaseError Exception Value: no such table: django_session – Sergey Rozhkov Aug 05 '12 at 02:52
  • From terminal - no pycharm - I had the same problem. Defining characteristic seems to be that it fails before asking for username - Burhan Khalid's answer was spot on: I set default locale and its gone. – sage Sep 02 '12 at 01:44

1 Answers1

5

This is known bug #16017 of django and it is because your environment doesn't have a default locale.

Execute this in your environment:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

Then the command will work properly.

Burhan Khalid
  • 169,990
  • 18
  • 245
  • 284
  • No, I think it is not.
    Last login: Sat Aug  4 23:22:42 on ttys000
    r3y-air:~ hollywoord$ locale
    LANG="en_US.UTF-8"
    LC_COLLATE="en_US.UTF-8"
    LC_CTYPE="en_US.UTF-8"
    LC_MESSAGES="en_US.UTF-8"
    LC_MONETARY="en_US.UTF-8"
    LC_NUMERIC="en_US.UTF-8"
    LC_TIME="en_US.UTF-8"
    LC_ALL=
    
    – Sergey Rozhkov Aug 05 '12 at 02:38
  • 1
    The environment that PyCharm executes is not the same as your shell. Check the default parameters for the PyCharm shell. – Burhan Khalid Aug 05 '12 at 12:07
  • On Mountain Lion Terminal variables are not available when running from PyCharm or other GUI applications, so it may still be the case: http://apple.stackexchange.com/q/57385/17551. Not sure if running Python via bash resolves it, but you may try to print these environment variables from a script running inside PyCharm to verify. – CrazyCoder Aug 05 '12 at 12:08
  • I added those 2 lines to my .bashrc file, restarted PyCharm, and it worked (and I'm OS X Mountain Lion 10.8.2). – caleb Dec 01 '12 at 17:18