您如何确定当前的Python Egg缓存目录?

时间:2018-08-16 02:52:39

标签: python

我知道您可以使用环境变量PYTHON_EGG_CACHE覆盖Egg缓存目录,并且可以在os.envrion中查找该覆盖。看来Ubuntu 16上的Python 2.7的默认值为 /。cache / Python-Eggs

在环境中未提供PYTHON_EGG_CACHE的情况下,如何记录鸡蛋缓存的位置?

1 个答案:

答案 0 :(得分:1)

setuptools使用PYTHON_EGG_CACHE envvar来确定存储已安装的Egg软件包的位置。 (您可以阅读有关setuptools here的更多信息)

浏览github上setuptools的当前代码(在当前名为get_default_cache的函数中)显示,如果envvar查找失败,则使用以下方法计算默认值:

from pkg_resources.extern import appdirs

return (
    os.environ.get('PYTHON_EGG_CACHE')
    or appdirs.user_cache_dir(appname='Python-Eggs')
)

appdirs是一个非常简单的python库,可获取标准文件系统位置。 user_cache_dir逻辑取决于您的操作系统,并且有相当多的条件(这里没有太多解释,但是如果您有兴趣,logic is on github

自从您提到U16-逻辑就是:

  • 查找另一个envvar(XDG_CACHE_HOME),然后附加/Python-Eggs(例如,如果XDG_CACHE_HOME/tmp/xdg/,则使用/tmp/xdg/Python-Eggs)< / li>
  • 如果未定义第二个envvar,则使用~/.cache/Python-Eggs