问题
Today, I went to change the config of matplotlib. Searching matplotlibrc
revealed I have two of them:
Looking at the site-packages
folder, I found a lot of packages have a tilde in their name:
~klearn
issklearn
, but there is anothersklearn
.~atplotlib
is matplotlib too, changed date is2018-11
~-tplotlib
's changed date is2019-3.15
matplotlib
's changed date is2019-3.28
(I did update matplotlib recently)
What are these tilde name packages used for? Can I delete them safely?
回答1:
Is it possible that you installed those particular packages with pip? If so, then the mangled directories are probably the temporary directories that pip creates when it uninstalls a package (or when it uninstalls a package in preparation for updating a package).
I dug through the pip source code and found this snippet which is evidently only used on uninstalling packages:
class AdjacentTempDirectory(TempDirectory):
"""Helper class that creates a temporary directory adjacent to a real one.
Attributes:
original
The original directory to create a temp directory for.
path
After calling create() or entering, contains the full
path to the temporary directory.
delete
Whether the directory should be deleted when exiting
(when used as a contextmanager)
"""
# The characters that may be used to name the temp directory
# We always prepend a ~ and then rotate through these until
# a usable name is found.
# pkg_resources raises a different error for .dist-info folder
# with leading '-' and invalid metadata
LEADING_CHARS = "-~.=%0123456789"
...
If that's what these files are, then you can safely delete them.
来源:https://stackoverflow.com/questions/55565760/anaconda-python-site-packages-subfolders-with-tilde-in-name-what-are-they