0

ここで何が起こっているのでしょうか?これは、私の 2 つの別々の Mac (1 つの Eclipse インストールと 1 つの Aptana Studio) の問題です。初めて DB を同期するときに「はい」と答えてスーパーユーザーを作成すると、これらのエラーが発生します。

PyDev の外部で (端末などを介して) Sync db を実行すると、正常に動作するようです。

Django の認証システムをインストールしたところです。これは、スーパーユーザーが定義されていないことを意味します。今すぐ作成しますか?(はい/いいえ): はいPython.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/ init.py "、443 行目、execute_from_command_line utility.execute() ファイル"/Library/Frameworks/Python.framework/バージョン/2.7/lib/python2.7/site-packages/django/core/management/init.py"、382 行目、実行中の self.fetch_command(subcommand).run_from_argv(self.argv) ファイル "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core /management/base.py"、196 行目、 run_from_argvの self.execute(*args, **options.dict) ファイル "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/base.py"、232 行目、実行中 output = self.handle(*args 、**オプション) ファイル "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/base.py"、371 行目、ハンドルで self.handle_noargs を返す(**オプション) ファイル "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/commands/syncdb.py"、110 行目、handle_noargs 内の emit_post_sync_signal( created_models、verbosity、interactive、db) ファイル "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/sql.py"、189 行目、emit_post_sync_signal インタラクティブ=interactive, db=db) ファイル "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/dispatch/dispatcher.py"、172 行目、送信応答 = 受信者 (信号 = 自己、送信者 = 送信者、* *名前付き) ファイル "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/auth/management/init .py"、73 行目、create_superuser call_command("createsuperuser", interactive=True, database=db) ファイル "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django /コア/管理/初期化.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"、232 行目、execute output = self.handle(*args, **options) ファイル "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ django/contrib/auth/management/commands/createsuperuser.py"、70 行目、ハンドルの default_username = get_default_username() ファイル "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ django/contrib/auth/management/ init .py"、105 行目、get_default_username default_username = get_system_username() ファイル "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/auth/management/init .py"、85 行目、get_system_username return getpass.getuser().decode(locale.getdefaultlocale()[1]) TypeError: decode() argument 1 must be string, not None Finished "/Users/mac2/Documents/ workspace/helloworld/manage.py syncdb」を実行。

4

1 に答える 1

1

返されたエラーは、への呼び出しがdecodeNone 引数で失敗したことを示しています。

"/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 Finished

問題はlocale.getdefaultlocale()、環境変数を含むタプルを返すことですLANG( http://docs.python.org/library/locale.htmlを参照)。syncdb が機能するターミナルを開いて と入力echo $LANGすると、 のような結果が得られると思いますen_US.UTF-8。同様に、コマンド ラインで Python を実行すると、次のような結果が返されると思います。

>>> import locale
>>> locale.getdefaultlocale()
('en_US', 'UTF-8')

ただし、LANG 環境変数が設定されていない Eclipse 内から同じコマンドを実行すると、(None, None).

Eclipse で LANG 環境変数を設定し ([実行構成...] > [環境])、syncdb を実行してみてください。変数が設定されている場所 (つまり、実行構成とプロジェクト自体) を少し変更する必要がある場合があります。それで問題は解決しますか?

于 2012-05-25T07:03:15.167 に答える