Skip to content

Running debugger multiple times causes AttributeError: 'NoneType' object has no attribute 'f_globals' #10028

Description

@andrewzwicky

Running the %run magic more than once causes an AttributeError: 'NoneType' object has no attribute 'f_globals'. I have not encountered this problem before, and it is present on multiple files. I created a new file to just print one line and the problem persists.

~/Workspace/puzzles/FiveThirtyEightRiddler $ ipython
Python 3.4.2 (default, Jun 20 2016, 14:25:19) 
Type "copyright", "credits" or "license" for more information.

IPython 5.1.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: %run -d test.py
Breakpoint 1 at /home/andrew/Workspace/puzzles/FiveThirtyEightRiddler/test.py:1
NOTE: Enter 'c' at the ipdb>  prompt to continue execution.
> /home/andrew/Workspace/puzzles/FiveThirtyEightRiddler/test.py(1)<module>()
1---> 1 print('test')

ipdb> c
test

In [2]: %run -d test.py
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-2-63fffe36c4af> in <module>()
----> 1 get_ipython().magic('run -d test.py')

/usr/lib/python3.4/site-packages/IPython/core/interactiveshell.py in magic(self, arg_s)
   2156         magic_name, _, magic_arg_s = arg_s.partition(' ')
   2157         magic_name = magic_name.lstrip(prefilter.ESC_MAGIC)
-> 2158         return self.run_line_magic(magic_name, magic_arg_s)
   2159 
   2160     #-------------------------------------------------------------------------

/usr/lib/python3.4/site-packages/IPython/core/interactiveshell.py in run_line_magic(self, magic_name, line)
   2077                 kwargs['local_ns'] = sys._getframe(stack_depth).f_locals
   2078             with self.builtin_trap:
-> 2079                 result = fn(*args,**kwargs)
   2080             return result
   2081 

<decorator-gen-57> in run(self, parameter_s, runner, file_finder)

/usr/lib/python3.4/site-packages/IPython/core/magic.py in <lambda>(f, *a, **k)
    186     # but it's overkill for just that one bit of state.
    187     def magic_deco(arg):
--> 188         call = lambda f, *a, **k: f(*a, **k)
    189 
    190         if callable(arg):

/usr/lib/python3.4/site-packages/IPython/core/magics/execution.py in run(self, parameter_s, runner, file_finder)
    713                         opts.get('b', ['1'])[0], filename)
    714                     self._run_with_debugger(
--> 715                         code, code_ns, filename, bp_line, bp_file)
    716                 else:
    717                     if 'm' in opts:

/usr/lib/python3.4/site-packages/IPython/core/magics/execution.py in _run_with_debugger(self, code, code_ns, filename, bp_line, bp_file)
    816             maxtries = 10
    817             bp_file = bp_file or filename
--> 818             checkline = deb.checkline(bp_file, bp_line)
    819             if not checkline:
    820                 for bp in range(bp_line + 1, bp_line + maxtries + 1):

/usr/lib64/python3.4/pdb.py in checkline(self, filename, lineno)
    743         # this method should be callable before starting debugging, so default
    744         # to "no globals" if there is no current frame
--> 745         globs = self.curframe.f_globals if hasattr(self, 'curframe') else None
    746         line = linecache.getline(filename, lineno, globs)
    747         if not line:

AttributeError: 'NoneType' object has no attribute 'f_globals'

In [3]: 

test.py:

print('test')
~/Workspace/puzzles/FiveThirtyEightRiddler $ python3 -c "import IPython; print(IPython.sys_info())"
{'commit_hash': '5c9c918',
 'commit_source': 'installation',
 'default_encoding': 'UTF-8',
 'ipython_path': '/usr/lib/python3.4/site-packages/IPython',
 'ipython_version': '5.1.0',
 'os_name': 'posix',
 'platform': 'Linux-4.0.7-300.fc22.x86_64-x86_64-with-fedora-22-Twenty_Two',
 'sys_executable': '/usr/bin/python3',
 'sys_platform': 'linux',
 'sys_version': '3.4.2 (default, Jun 20 2016, 14:25:19) \n'
                '[GCC 5.3.1 20160406 (Red Hat 5.3.1-6)]'}

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions