ModuleNotFoundError: No module named <’_bz2’, ‘_sqlite3’>

Users may experience a ModuleNotFoundError for some Python provided packages on their local machine.

Observed Error

This line of code

import bz2

gives error:

Traceback (most recent call last):
import bz2
File "/usr/local/lib/python3.8/bz2.py", line 19, in <module>
    from _bz2 import BZ2Compressor, BZ2Decompressor
ModuleNotFoundError: No module named '_bz2'

Explanation

Python installation was built from source but didn’t have all necessary system packages installed for full Python build.

Work around

Install bzip2-devel and sqlite-devel and rebuild Python, or download a pre-built Python binary.

ModuleNotFoundError: No module named <…>

Users may experience a ModuleNotFoundError for some Python packages that are available on their local machine.

Explanation

The Custom Worker Container Workflow provides seamless support for importing user-specific dependency packages in the Python environments into the Cerebras appliances. In case of failure, a fallback policy has also been enabled to mount the site packages from the user node Python virtual environment to the worker environment via a predefined NFS-based cluster volume.

Work around

If you observe a ModuleNotFoundError, you can disable the Custom Worker Container Workflow by following the instructions here, and follow the R1.8 approach:

  • pip install the packages in virtual environment

  • Copy the custom package directory from venv/lib/python3.8/site-packages/<package_name> to a NFS-mountable location for the Cerebras cluster. Only copy the custom packages, not the entire virtual environment.

  • Make sure to add this location to the --mount_dirs command line argument and the corresponding parent location to the --python_paths command line argument when calling run.py.