FAQ¶
This section describes how to handle common issues.
MySQL encoding issue¶
When interacting in Python with the MySQL database, using SQLAlchemy and the
MySQL driver mysqldb, one might run into the following error when
retrieving columns with text:
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 239:
character maps to <undefined>
The solution is to append ?charset=utf8mb4 to the database URL.
So, if the database URL was:
f"mysql+mysqldb://{username}:{password}@{host}:{port}/{database}"
then the new URL would be:
f"mysql+mysqldb://{username}:{password}@{host}:{port}/{database}?charset=utf8mb4"
The database URL is what is passed as a first argument to create the engine:
import sqlalchemy
engine = sqlalchemy.create_engine(f"{dialect}+{driver}://{username}:{password}@{host}:{port}/{database}")
DVC dataclasses issue¶
When in a Python 3.7+ environment the package dataclasses is installed,
one might run into the following error when doing dvc pull:
AttributeError: module 'typing' has no attribute '_ClassVar'
The solution is to uninstall the package dataclasses:
pip uninstall dataclasses
DVC pull issue¶
When launching mining_cache or mining_server entrypoints or even simply
dvc pull, one might run into the following error:
WARNING: Some of the cache files do not exist neither locally nor on remote.
Missing cache files:
In this case, the solution is to go to the .dvc directory
and remove the file called config.local:
cd .dvc
rm config.local
Doing dvc pull again should work fine after this.