>>> import import_profiler
>>> from import_profiler import profile_import
>>> with profile_import() as context:
... import pandas
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "/home/joris/miniconda3/envs/dev/lib/python3.5/site-packages/import_profiler.py", line 149, in _profiled_import
return self._original_importer(name, globals, locals, fromlist, level, *a, **kw)
File "/home/joris/scipy/pandas/pandas/__init__.py", line 13, in <module>
__import__(dependency)
File "/home/joris/miniconda3/envs/dev/lib/python3.5/site-packages/import_profiler.py", line 149, in _profiled_import
return self._original_importer(name, globals, locals, fromlist, level, *a, **kw)
ValueError: level must be >= 0
__import__in python 3 has a default oflevel=0, and -1 is no longer accepted (https://docs.python.org/3/library/functions.html#__import__)So using this with python 3, you get
Not sure if just changing level to 0 in https://github.com/cournape/import-profiler/blob/master/import_profiler.py#L139 is the correct solution, but at least it seems to work locally by making that small patch.