---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
File ~/usr/local/default/lib/python3.13/site-packages/pandas/compat/_optional.py:158, in import_optional_dependency(name, extra, min_version, errors)
157 try:
--> 158 module = importlib.import_module(name)
159 except ImportError as err:
File /usr/lib/python3.13/importlib/__init__.py:88, in import_module(name, package)
87 level += 1
---> 88 return _bootstrap._gcd_import(name[level:], package, level)
File <frozen importlib._bootstrap>:1387, in _gcd_import(name, package, level)
File <frozen importlib._bootstrap>:1360, in _find_and_load(name, import_)
File <frozen importlib._bootstrap>:1310, in _find_and_load_unlocked(name, import_)
File <frozen importlib._bootstrap>:488, in _call_with_frames_removed(f, *args, **kwds)
File <frozen importlib._bootstrap>:1387, in _gcd_import(name, package, level)
File <frozen importlib._bootstrap>:1360, in _find_and_load(name, import_)
File <frozen importlib._bootstrap>:1324, in _find_and_load_unlocked(name, import_)
ModuleNotFoundError: No module named 'lxml'
The above exception was the direct cause of the following exception:
ImportError Traceback (most recent call last)
Cell In[12], line 1
----> 1 data = pd.read_html("https://www.moneycontrol.com/markets/indian-indices/")
File ~/usr/local/default/lib/python3.13/site-packages/pandas/io/html.py:1226, in read_html(io, match, flavor, header, index_col, skiprows, attrs, parse_dates, thousands, encoding, decimal, converters, na_values, keep_default_na, displayed_only, extract_links, dtype_backend, storage_options)
1222 check_dtype_backend(dtype_backend)
1224 io = stringify_path(io)
-> 1226 return _parse(
1227 flavor=flavor,
1228 io=io,
1229 match=match,
1230 header=header,
1231 index_col=index_col,
1232 skiprows=skiprows,
1233 parse_dates=parse_dates,
1234 thousands=thousands,
1235 attrs=attrs,
1236 encoding=encoding,
1237 decimal=decimal,
1238 converters=converters,
1239 na_values=na_values,
1240 keep_default_na=keep_default_na,
1241 displayed_only=displayed_only,
1242 extract_links=extract_links,
1243 dtype_backend=dtype_backend,
1244 storage_options=storage_options,
1245 )
File ~/usr/local/default/lib/python3.13/site-packages/pandas/io/html.py:967, in _parse(flavor, io, match, attrs, encoding, displayed_only, extract_links, storage_options, **kwargs)
965 retained = None
966 for flav in flavor:
--> 967 parser = _parser_dispatch(flav)
968 p = parser(
969 io,
970 compiled_match,
(...) 975 storage_options,
976 )
978 try:
File ~/usr/local/default/lib/python3.13/site-packages/pandas/io/html.py:914, in _parser_dispatch(flavor)
912 import_optional_dependency("bs4")
913 else:
--> 914 import_optional_dependency("lxml.etree")
915 return _valid_parsers[flavor]
File ~/usr/local/default/lib/python3.13/site-packages/pandas/compat/_optional.py:161, in import_optional_dependency(name, extra, min_version, errors)
159 except ImportError as err:
160 if errors == "raise":
--> 161 raise ImportError(msg) from err
162 return None
164 # Handle submodules: if we have submodule, grab parent module from sys.modules
ImportError: `Import lxml` failed. Use pip or conda to install the lxml package.