.matplotlib在将matplotlib安装到virtualenv时的配置位置

时间:2017-11-17 21:28:28

标签: python matplotlib virtualenv

TL; DR

为什么matplotlib的配置最终会出现在$ HOME中,当安装在virtualenv中时,应该限定为virtualenv自己的网站包?

在Tensorflow项目上工作,我

  • 创建了virtualenv
  • 激活了virtualenv
  • 然后安装了Tensorflow,matplotlib等人的软件包。 [注意:我没有全局安装这些软件包]

在调试matplotlib错误时,注意到有关matplotlib的评论来自此答案[https://stackoverflow.com/a/21789908]

  

为什么我的根文件夹中有一个文件夹.matplotlib而不是   我安装它的虚拟环境?

根据matplotlib文档[https://matplotlib.org/faq/troubleshooting_faq.html#matplotlib-configuration-and-cache-directory-locations]

  

在类似unix的系统上,此目录通常位于您的HOME中   .config /目录下的目录

使用从virtualenv内部运行的这个简单脚本,我在MacOS上确认目录位置[10.10.5]

import matplotlib as mpl

print(mpl.get_cachedir())
# output is '$HOME/.matplotlib'

然而,文档没有回答这个问题:为什么当virtualenv安装应该限定为virtualenv自己的网站包时,matplotlib的配置是否最终在$ HOME内?

1 个答案:

答案 0 :(得分:0)

因为他们实施了很多other means

  

matplotlib按以下顺序在四个位置查找matplotlibrc:

     

当前工作目录中的matplotlibrc,通常用于您不希望在其他地方应用的特定自定义。

     

$ MATPLOTLIBRC如果是文件,则为$ MATPLOTLIBRC / matplotlibrc。

     

接下来会根据您的平台查看特定于用户的位置:

     

在Linux和FreeBSD上,如果您已经自定义环境,它会查看.config / matplotlib / matplotlibrc(或$ XDG_CONFIG_HOME / matplotlib / matplotlibrc)。

     

在其他平台上,它会查找.matplotlib / matplotlibrc。

matplotlibrc放在当前目录中(或将程序运行在matplotlibrc的目录中)。或者定义MATPLOTLIBRC环境变量。在虚拟环境中,您可以使用preactivate/postdeactivate挂钩自动设置和清除它。