BUG!!!======> syncdb 時 “ TypeError: decode() argument 1 must be string, not None ”


在路由器上跑django時,運行syncdb命令時出現一下錯誤-------->

[root@DD-WRT erya]$ python2.6 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 10, in <module> execute_from_command_line(sys.argv) File "/opt/local/lib/python2.6/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line utility.execute() File "/opt/local/lib/python2.6/site-packages/django/core/management/__init__.py", line 382, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/opt/local/lib/python2.6/site-packages/django/core/management/base.py", line 196, in run_from_argv self.execute(*args, **options.__dict__) File "/opt/local/lib/python2.6/site-packages/django/core/management/base.py", line 232, in execute output = self.handle(*args, **options) File "/opt/local/lib/python2.6/site-packages/django/core/management/base.py", line 371, in handle return self.handle_noargs(**options) File "/opt/local/lib/python2.6/site-packages/django/core/management/commands/syncdb.py", line 110, in handle_noargs emit_post_sync_signal(created_models, verbosity, interactive, db) File "/opt/local/lib/python2.6/site-packages/django/core/management/sql.py", line 189, in emit_post_sync_signal interactive=interactive, db=db) File "/opt/local/lib/python2.6/site-packages/django/dispatch/dispatcher.py", line 172, in send response = receiver(signal=self, sender=sender, **named) File "/opt/local/lib/python2.6/site-packages/django/contrib/auth/management/__init__.py", line 73, in create_superuser call_command("createsuperuser", interactive=True, database=db) File "/opt/local/lib/python2.6/site-packages/django/core/management/__init__.py", line 150, in call_command return klass.execute(*args, **defaults) File "/opt/local/lib/python2.6/site-packages/django/core/management/base.py", line 232, in execute output = self.handle(*args, **options) File "/opt/local/lib/python2.6/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 70, in handle default_username = get_default_username() File "/opt/local/lib/python2.6/site-packages/django/contrib/auth/management/__init__.py", line 105, in get_default_username default_username = get_system_username() File "/opt/local/lib/python2.6/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

    初步斷定decode()的話,問題應該出現在語言編碼的問題,想到了環境變量,於是設置:

[root@DD-WRT erya]$ export LC_ALL=en_US.UTF-8
[root@DD-WRT erya]$ python2.6 manage.py syncdb
Creating tables ...
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)

    創建superuser:

[root@DD-WRT erya]$ python2.6 manage.py  createsuperuser
Username (leave blank to use 'root'): shi
E-mail address: er@126.com
Password: 
Password (again): 
Superuser created successfully.

    BUG除掉!!!將export LC_ALL=en_US.UTF-8寫入到profile或者.bashrc中即可。

引用:

The immediate resolution for this, assuming you are using bash as your shell:

$ export LC_ALL=en_US.UTF-8

$ export LANG=en_US.UTF-8

This will set your locale for that session, and syncdb will work. You can add this to your profile and make it permanent for your shells.

You can use the locale command to see the current settings, and locale -a to see what locales are available to you. en_US.UTF-8 is a generic safe one, but you may have other preferences.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM