Anaconda/Python 站点包子文件夹名称中带有波浪号 - 它们是啥?
Posted
技术标签:
【中文标题】Anaconda/Python 站点包子文件夹名称中带有波浪号 - 它们是啥?【英文标题】:Anaconda/Python site-packages subfolders with tilde in name - what are they?Anaconda/Python 站点包子文件夹名称中带有波浪号 - 它们是什么? 【发布时间】:2019-08-29 03:36:24 【问题描述】:今天去修改matplotlib的配置。搜索matplotlibrc
发现我有两个:
查看site-packages
文件夹,我发现很多包的名称中都有波浪号:
~klearn
是 sklearn
,但还有另一个 sklearn
。
~atplotlib
也是 matplotlib,更改日期是 2018-11
~-tplotlib
的更改日期是 2019-3.15
matplotlib
的更改日期是2019-3.28
(我最近确实更新了matplotlib)
这些波浪号名称包是用来做什么的?我可以安全地删除它们吗?
【问题讨论】:
在 Windows 约定中,以 ~ 开头的目录/文件主要是备份。不确定anaconda是否也是这种情况。您可以尝试将目录剪切粘贴到另一个目录,看看是否一切正常。 @Taegyung Alteady 测试,删除后正常。但它不应该像这样保留旧包。恐怕他们还有其他用处。 您可以通过conda clean --all --dry-run
查看
【参考方案1】:
您是否有可能使用 pip 安装了这些特定的软件包?如果是这样,那么损坏的目录可能是 pip 在卸载包时(或在卸载包以准备更新包时)创建的临时目录。
我翻了一下pip源码,发现this snippet显然只用于卸载包:
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"
...
如果这些文件是这样的,那么您可以安全地删除它们。
【讨论】:
以上是关于Anaconda/Python 站点包子文件夹名称中带有波浪号 - 它们是啥?的主要内容,如果未能解决你的问题,请参考以下文章
[ZZ] 如何在多版本anaconda python环境下转换spyder