#12735 closed (fixed)
django shell is broken with IPython 0.11.x (bzr.r1219)
| Reported by: | alperkanat | Owned by: | nobody |
|---|---|---|---|
| Component: | Core (Management commands) | Version: | dev |
| Severity: | Keywords: | ||
| Cc: | Triage Stage: | Accepted | |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | yes |
| Easy pickings: | no | UI/UX: | no |
Description (last modified by )
[15:33] (tunix@penguix raptiye)$ ./manage.py shell
Traceback (most recent call last):
File "./manage.py", line 14, in <module>
execute_manager(settings)
File "/Users/tunix/Projects/django/core/management/__init__.py", line 438, in execute_manager
utility.execute()
File "/Users/tunix/Projects/django/core/management/__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/tunix/Projects/django/core/management/base.py", line 195, in run_from_argv
self.execute(*args, **options.__dict__)
File "/Users/tunix/Projects/django/core/management/base.py", line 222, in execute
output = self.handle(*args, **options)
File "/Users/tunix/Projects/django/core/management/base.py", line 351, in handle
return self.handle_noargs(**options)
File "/Users/tunix/Projects/django/core/management/commands/shell.py", line 29, in handle_noargs
shell = IPython.Shell.IPShell(argv=[])
AttributeError: 'module' object has no attribute 'Shell'
It seems that Shell module is deprecated:
In [1]: from IPython import Shell /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/IPython/Shell.py:31: DeprecationWarning: This module (IPython.Shell) is deprecated. The classes that were in this module have been replaced by: IPShell->IPython.core.iplib.InteractiveShell IPShellEmbed->IPython.core.embed.InteractiveShellEmbed Please migrate your code to use these classes instead. warn(msg, category=DeprecationWarning, stacklevel=1)
Attachments (1)
Change History (8)
comment:1 by , 16 years ago
| Component: | Core framework → django-admin.py |
|---|---|
| Description: | modified (diff) |
by , 16 years ago
| Attachment: | django_shell.patch added |
|---|
comment:2 by , 16 years ago
| Triage Stage: | Unreviewed → Accepted |
|---|
follow-up: 4 comment:3 by , 15 years ago
#13554 reported the same issue against the now stable 0.11 IPython release and contains a similar patch.
comment:4 by , 15 years ago
Replying to ramiro:
... against the now stable 0.11 IPython release.
Wrong. IPython 0.1 hasn't been released yet.
comment:5 by , 15 years ago
| Has patch: | set |
|---|---|
| Patch needs improvement: | set |
Most of the time we try the "new way" to do things first and fall back to the old way if it didn't work out.
Plus, a comment explaining why we need this try...except clause is in order too.
try:
shell = IPython.InteractiveShell()
except AttributeError:
# IPython < 0.11
# Explicitly pass an empty list as arguments, because otherwise IPython
# would use sys.argv from this script.
shell = IPython.Shell.IPShell(argv=[])
shell.mainloop()
comment:6 by , 15 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
(In [14895]) Fixed #12735, #14892 and #11542 -- Fixed support for the latest IPython (development) version in the shell management command and added a hook to implement additional shell runners (by subclassing django.core.management.commands.shell.Command, extending the shells attribute and implement a method with the same name).
(reformatted description)
no 0.11 version of ipython has been released yet, should we wait for a stable release before thinking about adding compatibility code to Django?