2012-06-05 30 views
9

Tôi đang cố gắng thêm cơ sở dữ liệu vào Dự án Django bằng Sqlite3 và Python 2.7.Thêm cơ sở dữ liệu vào Dự án Django bằng Sqlite3 với Python 2.7

Đây là cách setting.py của tôi trông giống như:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. 
     'NAME': 'dev.db',      # Or path to database file if using sqlite3. 
     'USER': '',      # Not used with sqlite3. 
     'PASSWORD': '',     # Not used with sqlite3. 
     'HOST': '',      # Set to empty string for localhost. Not used with sqlite3. 
     'PORT': '',      # Set to empty string for default. Not used with sqlite3. 
    } 
} 

Nó cho phép tôi để tạo ra cơ sở dữ liệu và nó hỏi tôi để tạo ra superuser:

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): 

Khi tôi gõ có, nó cung cấp cho tôi thông báo lỗi này.

Lỗi msg:

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line 
    utility.execute() 
    File "/Users/IMAC/work3/env/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/IMAC/work3/env/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute 
    output = self.handle(*args, **options) 
    File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle 
    return self.handle_noargs(**options) 
    File "/Users/IMAC/work3/env/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/IMAC/work3/env/lib/python2.7/site-packages/django/core/management/sql.py", line 189, in emit_post_sync_signal 
    interactive=interactive, db=db) 
    File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/dispatch/dispatcher.py", line 172, in send 
    response = receiver(signal=self, sender=sender, **named) 
    File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", line 73, in create_superuser 
    call_command("createsuperuser", interactive=True, database=db) 
    File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 150, in call_command 
    return klass.execute(*args, **defaults) 
    File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute 
    output = self.handle(*args, **options) 
    File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 70, in handle 
    default_username = get_default_username() 
    File "/Users/IMAC/work3/env/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", line 105, in get_default_username 
    default_username = get_system_username() 
    File "/Users/IMAC/work3/env/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/IMAC/work3/env/lib/python2.7/locale.py", line 496, in getdefaultlocale 
    return _parse_localename(localename) 
    File "/Users/IMAC/work3/env/lib/python2.7/locale.py", line 428, in _parse_localename 
    raise ValueError, 'unknown locale: %s' % localename 
ValueError: unknown locale: UTF-8 

Làm thế nào để tôi giải quyết các lỗi trên? Tại sao nó không cho phép tôi thêm một siêu người dùng? tôi nên làm gì? Có thể vấn đề này bởi vì tôi đang chạy Python 2,7?

+0

Vì vậy, ... là câu hỏi của bạn là "Làm cách nào để thêm ngôn ngữ trên OS X?"? –

+0

là vì tôi đang chạy python 2.7? – lakesh

Trả lời

16

Loại này trước khi bạn thực thi python manage.py syncdb

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

Điều này sẽ giải quyết lỗi .. Btw i đang sử dụng mac os x python trong/usr/bin/python.

Thêm tệp vào tệp ./.bash_profile để nó tự động gọi nó.

+0

Cảm ơn, điều này làm việc cho tôi trên Mac – Philip007

0

Gần đây, tôi đã thực hiện điều này trên các cửa sổ. Đây là một hack, không phải là một sửa chữa hoặc một câu trả lời, nhưng nó có thể giúp bạn vượt qua vấn đề của bạn:

Đặt này ở phía trên cùng của kịch bản manage.py bạn

import os 
os.environ.setdefault('LANG','en_US') 

http://keeyai.com/2012/02/17/django-deployment-create-superuser-fails-with-locale-error/

+0

vẫn lỗi tương tự – lakesh

Các vấn đề liên quan