-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Confusing error message when home config directory not writable #18011
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I have the same issue, did you solve it? |
@YuantianGao Yes, we fixed the order of the paths in #18014 and this should be fixed in all versions after 3.3.1. |
Does anyone know if this warning message can be suppressed? If not, any chance there's interest in adding an environment variable to optionally suppress the warning? something like (but better named ;): index 71afd3928d..01f8d15fab 100644
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -481,13 +481,14 @@ def _get_config_or_cache_dir(xdg_base_getter):
tmpdir = os.environ["MPLCONFIGDIR"] = \
tempfile.mkdtemp(prefix="matplotlib-")
atexit.register(shutil.rmtree, tmpdir)
- _log.warning(
- "Matplotlib created a temporary config/cache directory at %s because "
- "the default path (%s) is not a writable directory; it is highly "
- "recommended to set the MPLCONFIGDIR environment variable to a "
- "writable directory, in particular to speed up the import of "
- "Matplotlib and to better support multiprocessing.",
- tmpdir, configdir)
+ if not os.environ.get("MPLNOCACHEWARN"):
+ _log.warning(
+ "Matplotlib created a temporary config/cache directory at %s because "
+ "the default path (%s) is not a writable directory; it is highly "
+ "recommended to set the MPLCONFIGDIR environment variable to a "
+ "writable directory, in particular to speed up the import of "
+ "Matplotlib and to better support multiprocessing.",
+ tmpdir, configdir) Or, perhaps switch to using the warnings module for the message, and give it a category, then allow people to suppress it via warnings.filterwarnings(category). |
You can filter logging module warnings as well: https://docs.python.org/3/library/logging.html |
Bug report
Bug summary
If matplotlib is run in an environment without a writable home directory, a very confusing error message is printed in which the configdir and the tempdir are interchanged.
Code for reproduction
In Linux, create a user
someone
with no home directory.Run Python with a command like
sudo -u someone python3
In the Python shell, type
import matplotlib
Actual outcome
Expected outcome
Matplotlib version
print(matplotlib.get_backend())
): aggMatplotlib was compiled from source. The error is at line 482 in
__init__.py
at the root level in the source tree. The parameters are the wrong way round.The text was updated successfully, but these errors were encountered: