python - 如何确定当前的 Python egg 缓存目录?
问题描述
我知道您可以使用环境变量 PYTHON_EGG_CACHE 覆盖 egg 缓存目录,并且您可以在 os.envrion 中查看该覆盖。看起来 Ubuntu 16 上 Python 2.7 的默认设置是/.cache/Python-Eggs。
当环境中没有提供 PYTHON_EGG_CACHE 时,您将如何记录鸡蛋缓存的位置?
解决方案
setuptools使用PYTHON_EGG_CACHE
envvar 来确定存储已安装的 egg 包的位置。(您可以在此处阅读有关 setuptools的更多信息)
查看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
操作系统,并且有很多条件(这里解释的太多了,但如果你有兴趣,逻辑在 github 上)
既然你提到了 U16 - 那里的逻辑是:
- 查找另一个 envvar (
XDG_CACHE_HOME
),然后追加/Python-Eggs
(例如,如果XDG_CACHE_HOME
是/tmp/xdg/
则/tmp/xdg/Python-Eggs
使用) - 如果未定义第二个 envvar,则
~/.cache/Python-Eggs
使用 then。
推荐阅读
- drupal - 为作为段落引用的 Drupal 9 空字段创建自定义 GraphQL 模式
- node.js - 尝试安装 npm
- webpack - webpack 抱怨有条件的 require
- javascript - 使用 JS 代码显示/运行 HTML 文件的选项,而不是每次都在终端中执行它?
- drupal-8 - Drupal:需要“绕过文件访问”权限
- python - Python 在 matplotlib show() 上崩溃,任何后端
- fiware-orion - Orion contextBroker 允许对 Mongodb 副本集设置读取首选项?
- python-3.x - 在 Python 中从 BLOB 中提取表
- angular - 赛普拉斯:req.followRedirect = false 不会阻止重定向的发生
- javascript - 通过点击从子组件传递数据到父组件反应