10

私は Django を学んでおり、これが私の最初のプロジェクトです。私はこのチュートリアルでこのプロジェクトに取り組んでいます。https://docs.djangoproject.com/en/1.4/intro/tutorial01/

syncdb コマンドを実行したとき。テーブルが作成されました。次に、スーパーユーザーを追加するかどうか尋ねられたので、はいと言った。その後、次のエラーメッセージが表示されました。スタックオーバーフローで同様の質問をいくつか見つけましたが、それでも修正できません。

(django)feelexit@ubuntu:~/.virtualenvs/testDjango$ ./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): y
Please enter either "yes" or "no": yes
Traceback (most recent call last):
  File "./manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
    utility.execute()
  File "/home/feelexit/.virtualenvs/django/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 "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle
    return self.handle_noargs(**options)
  File "/home/feelexit/.virtualenvs/django/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 "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/sql.py", line 189, in emit_post_sync_signal
    interactive=interactive, db=db)
  File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/dispatch/dispatcher.py", line 172, in send
    response = receiver(signal=self, sender=sender, **named)
  File "/home/feelexit/.virtualenvs/django/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 "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 150, in call_command
    return klass.execute(*args, **defaults)
  File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 70, in handle
    default_username = get_default_username()
  File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", line 105, in get_default_username
    default_username = get_system_username()
  File "/home/feelexit/.virtualenvs/django/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

更新: ubuntu 12.04 を使用しています。可能な解決策を見つけました。以下のコードを manage.py に追加します。ただし、その横に「これが悪影響を与えるかどうかはわかりません」という免責事項があります。私はそれを修正するためのより良い方法を探しています。

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

2 に答える 2

14

これは Django コードのバグです ( django バグ レポートを参照してください)。

これを修正するチケットの通常の方法は、シェルLANG環境変数をエクスポートすることです。

export LANG="en_US.UTF-8"

それはSuSEセットアップで私のために働きます。

于 2013-03-26T15:49:51.940 に答える
3

export LANG="en_US.UTF-8"

私にとってはうまくいきますが、manage.pyを編集する方法で、django-adminは以前とは異なるディレクトリ構造を作成し、サブフォルダーからsettings.py、urls.pyなどのファイルを移動しています。

編集: os.environ["LANG"]="en_US.UTF-8" (インポート os を実行した後)

sys.append を使用してパスを追加し、インポート エラーを回避しました。

于 2014-07-06T20:54:24.347 に答える