Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#22658 closed Bug (worksforme)

Exception in Shell handler with unicode character on 1.7

Reported by: rbenedum@… Owned by: nobody
Component: Internationalization Version: 1.7-beta-1
Severity: Normal Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

When attempting to execute command 'Le Désert' from django shell and error occurs and shell quits.

Steps to repo from
python manage.py shell
'>>>'Le Désert'

Traceback (most recent call last):

File "manage.py", line 12, in <module>

execute_from_command_line(sys.argv)

File "[path_removed]/python2.7/site-packages/django/core/management/init.py", line 427, in execute_from_command_line

utility.execute()

File "[path_removed]/python2.7/site-packages/django/core/management/init.py", line 419, in execute

self.fetch_command(subcommand).run_from_argv(self.argv)

File "[path_removed]/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv

self.execute(*args, options.dict)

File "[path_removed]/python2.7/site-packages/django/core/management/base.py", line 337, in execute

output = self.handle(*args, options)

File "[path_removed]/python2.7/site-packages/django/core/management/base.py", line 532, in handle

return self.handle_noargs(options)

File "[path_removed]/python2.7/site-packages/django/core/management/commands/shell.py", line 109, in handle_noargs

code.interact(local=imported_objects)

File "/usr/local/lib/python2.7/code.py", line 306, in interact

console.interact(banner)

File "/usr/local/lib/python2.7/code.py", line 238, in interact

line = line.decode(encoding)

File "/usr/local/lib/python2.7/encodings/utf_8.py", line 16, in decode

return codecs.utf_8_decode(input, errors, True)

UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 5: invalid continuation byte

Django Versions tried: 1.7b1, 1.7b4

Change History (3)

comment:1 by Aymeric Augustin, 10 years ago

Resolution: worksforme
Status: newclosed

Your shell appears not to be configured correctly — it doesn't pass input as utf-8.

% ./manage.py shell
Python 2.7.5 (default, Aug 25 2013, 00:04:04) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> 'Le Désert'
'Le D\xc3\xa9sert'

comment:2 by anonymous, 10 years ago

Hi, I am also having this problem; can you offer a suggestion for how to get this fixed? The normal Python shell works fine, only manage.py shell breaks.

comment:3 by rbenedum@…, 10 years ago

hi thanks for the reply -
However, normal python shell is working fine, this appears to be only happening in django shell.
See below that my shell works fine without django.
Am I missing some django configuration?

[rbenedum@rbpythondev app]$ /usr/local/bin/python2.7
Python 2.7.6 (default, Mar 31 2014, 18:28:33)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 'Le Désert'
'Le D\xe9sert'
>>>

Here is a more complete dump of the previous error through django shell

[rbenedum@rbpythondev app]$ /usr/local/bin/python2.7 manage.py shell
Python 2.7.6 (default, Mar 31 2014, 18:28:33)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> 'Le Désert'
Traceback (most recent call last):
  File "manage.py", line 12, in <module>
    execute_from_command_line(sys.argv)
  File "/home/rbenedum/venv/e7e81f830beaf416aee8ababe202ee184aeb71df/lib/python2.7/site-packages/django/core/management/__init__.py", line 427, in execute_from_command_line
    utility.execute()
  File "/home/rbenedum/venv/e7e81f830beaf416aee8ababe202ee184aeb71df/lib/python2.7/site-packages/django/core/management/__init__.py", line 419, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/rbenedum/venv/e7e81f830beaf416aee8ababe202ee184aeb71df/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/home/rbenedum/venv/e7e81f830beaf416aee8ababe202ee184aeb71df/lib/python2.7/site-packages/django/core/management/base.py", line 337, in execute
    output = self.handle(*args, **options)
  File "/home/rbenedum/venv/e7e81f830beaf416aee8ababe202ee184aeb71df/lib/python2.7/site-packages/django/core/management/base.py", line 532, in handle
    return self.handle_noargs(**options)
  File "/home/rbenedum/venv/e7e81f830beaf416aee8ababe202ee184aeb71df/lib/python2.7/site-packages/django/core/management/commands/shell.py", line 109, in handle_noargs
    code.interact(local=imported_objects)
  File "/usr/local/lib/python2.7/code.py", line 306, in interact
    console.interact(banner)
  File "/usr/local/lib/python2.7/code.py", line 238, in interact
    line = line.decode(encoding)
  File "/usr/local/lib/python2.7/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 5: invalid continuation byte
[rbenedum@rbpythondev app]$

This is running on CentOS 6.5 with custom compiled Python 2.7

Note: See TracTickets for help on using tickets.
Back to Top