ModuleNotFoundError: No module named 'attrs'

Hey all,

I am getting this error when I run dvc init: ModuleNotFoundError: No module named ‘attrs’

I am trying to run dvc init in a conda environment with Python 3.9.0. Any ideas? The full error is below:

Traceback (most recent call last):
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc/cli/init.py”, line 210, in main
ret = cmd.do_run()
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc/cli/command.py”, line 40, in do_run
return self.run()
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc/commands/init.py”, line 42, in run
from dvc.repo import Repo
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc/repo/init.py”, line 70, in
class Repo:
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc/repo/init.py”, line 82, in Repo
from dvc.repo.get_url import get_url as _get_url # type: ignore[misc]
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc/repo/get_url.py”, line 3, in
from dvc import output
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc/output.py”, line 25, in
from dvc_data.hashfile import check as ocheck
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc_data/hashfile/init.py”, line 5, in
from .tree import Tree
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc_data/hashfile/tree.py”, line 9, in
from …hashfile.hash import hash_file
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc_data/hashfile/hash.py”, line 9, in
from .hash_info import HashInfo
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc_data/hashfile/hash_info.py”, line 3, in
from attrs import define, field
ModuleNotFoundError: No module named ‘attrs’

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/home/firefly-lambda/.local/bin/dvc”, line 8, in
sys.exit(main())
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc/cli/init.py”, line 236, in main
ret = _log_exceptions(exc) or 255
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc/cli/init.py”, line 120, in _log_exceptions
from dvc_data.hashfile.cache import DiskError
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc_data/hashfile/init.py”, line 5, in
from .tree import Tree
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc_data/hashfile/tree.py”, line 9, in
from …hashfile.hash import hash_file
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc_data/hashfile/hash.py”, line 9, in
from .hash_info import HashInfo
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc_data/hashfile/hash_info.py”, line 3, in
from attrs import define, field
ModuleNotFoundError: No module named ‘attrs’
Error in sys.excepthook:
Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/apport_python_hook.py”, line 72, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File “/usr/lib/python3/dist-packages/apport/init.py”, line 5, in
from apport.report import Report
File “/usr/lib/python3/dist-packages/apport/report.py”, line 32, in
import apport.fileutils
File “/usr/lib/python3/dist-packages/apport/fileutils.py”, line 12, in
import os, glob, subprocess, os.path, time, pwd, sys, requests_unixsocket
File “/usr/lib/python3/dist-packages/requests_unixsocket/init.py”, line 1, in
import requests
File “/usr/lib/python3/dist-packages/requests/init.py”, line 95, in
from urllib3.contrib import pyopenssl
File “/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py”, line 46, in
import OpenSSL.SSL
File “/usr/lib/python3/dist-packages/OpenSSL/init.py”, line 8, in
from OpenSSL import crypto, SSL
File “/usr/lib/python3/dist-packages/OpenSSL/crypto.py”, line 1553, in
class X509StoreFlags(object):
File “/usr/lib/python3/dist-packages/OpenSSL/crypto.py”, line 1573, in X509StoreFlags
CB_ISSUER_CHECK = _lib.X509_V_FLAG_CB_ISSUER_CHECK
AttributeError: module ‘lib’ has no attribute ‘X509_V_FLAG_CB_ISSUER_CHECK’

Original exception was:
Traceback (most recent call last):
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc/cli/init.py”, line 210, in main
ret = cmd.do_run()
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc/cli/command.py”, line 40, in do_run
return self.run()
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc/commands/init.py”, line 42, in run
from dvc.repo import Repo
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc/repo/init.py”, line 70, in
class Repo:
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc/repo/init.py”, line 82, in Repo
from dvc.repo.get_url import get_url as _get_url # type: ignore[misc]
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc/repo/get_url.py”, line 3, in
from dvc import output
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc/output.py”, line 25, in
from dvc_data.hashfile import check as ocheck
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc_data/hashfile/init.py”, line 5, in
from .tree import Tree
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc_data/hashfile/tree.py”, line 9, in
from …hashfile.hash import hash_file
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc_data/hashfile/hash.py”, line 9, in
from .hash_info import HashInfo
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc_data/hashfile/hash_info.py”, line 3, in
from attrs import define, field
ModuleNotFoundError: No module named ‘attrs’

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/home/firefly-lambda/.local/bin/dvc”, line 8, in
sys.exit(main())
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc/cli/init.py”, line 236, in main
ret = _log_exceptions(exc) or 255
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc/cli/init.py”, line 120, in _log_exceptions
from dvc_data.hashfile.cache import DiskError
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc_data/hashfile/init.py”, line 5, in
from .tree import Tree
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc_data/hashfile/tree.py”, line 9, in
from …hashfile.hash import hash_file
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc_data/hashfile/hash.py”, line 9, in
from .hash_info import HashInfo
File “/home/firefly-lambda/.local/lib/python3.8/site-packages/dvc_data/hashfile/hash_info.py”, line 3, in
from attrs import define, field
ModuleNotFoundError: No module named ‘attrs’

Solved it by manually installing attrs to the ~/.local/lib/python3.8/site-packages:

pip install attrs --target ~/.local/lib/python3.8/site-packages