icecream icon indicating copy to clipboard operation
icecream copied to clipboard

ic| Error: Failed to access the underlying source code for analysis.

Open mhechthz opened this issue 2 years ago • 4 comments

This was already in the issues but nevertheless I face this currently.

from icecream import ic

a = 3
b = 4
ic(a+b)

ic| Error: Failed to access the underlying source code for analysis. Was ic() invoked in a REPL (e.g. from the command line), a frozen application (e.g. packaged with PyInstaller), or did the underlying source code change during execution?

Windows 10, Python 3.11.6. On the same machine Python 3.10 and Python 3.12 work fine, but 3.11 not.

python -VV
Python 3.11.6 (tags/v3.11.6:8b6ee5b, Oct  2 2023, 14:57:12) [MSC v.1935 64 bit (AMD64)]

mhechthz avatar Dec 04 '23 07:12 mhechthz

Works for me with python 3.11.6 on Windows. You could test if executing works first e.g.

import inspect

import executing


def test(expr):
    source = executing.Source.executing(inspect.currentframe().f_back)
    print(source.text()) # should print `test(a + b)`


a = 3
b = 4
test(a + b)

If it doesn't work then the problem is in executing, then you could debug the Source class in executing.

char101 avatar Dec 06 '23 11:12 char101

I think it might be an incompatibility with some library or so.

In Python 3.10 and 3.12 the print is as expected, in my 3.11.6 the print is empty.

mhechthz avatar Dec 07 '23 12:12 mhechthz

Please close this issue if it is solved to prevent comment cluttering. TQ

TheStrangerDoctor avatar Dec 14 '23 13:12 TheStrangerDoctor

I had the same problem with a fresh venv and Python 3.11.7. I resolved it by replacing the complete /site-packages/executing folder by the most recent source distribution 2.0.1

RainerFaller avatar Jan 04 '24 21:01 RainerFaller