控制环境

许多环境变量可用于控制 Kivy 的初始化和行为。

例如,为了将文本呈现限制为 PIL 实现:

$ KIVY_TEXT=pil python main.py

在导入kivy之前应该设置环境变量:

import os
os.environ['KIVY_TEXT'] = 'pil'
import kivy

路径控制

新版本 1.0.7。

您可以控制配置文件、模块和 kivy 数据所在的默认目录。

KIVY_DATA_DIR

Kivy 数据的位置,默认为<kivy path>/data

KIVY_MODULES_DIR

Kivy 模块的位置,默认为<kivy path>/modules

KIVY_HOME

Kivy根目录的位置。该目录用于本地配置,必须位于可写位置。

默认为:

  • 桌面:<用户主目录>/.kivy

  • 安卓:<安卓应用路径>/.kivy

  • iOS:<用户主页>/Documents/.kivy

新版本 1.9.0。

KIVY_SDL2_PATH

如果设置,则在编译 kivy 时将使用此路径中的 SDL2 库和标头,而不是系统范围内安装的库和标头。要在运行 kivy 应用程序时使用相同的库,必须将此路径添加到 PATH 环境变量的开头。

新版本 1.9.0。

警告

Kivy 的编译需要这个路径。程序执行不需要它。

配置

KIVY_USE_DEFAULTCONFIG

如果在 environ 中找到这个名字,Kivy 将不会读取用户配置文件。

KIVY_NO_CONFIG

如果设置,则不会读取或写入任何配置文件。这也适用于用户配置目录。

KIVY_NO_FILELOG

如果设置,日志将不会打印到文件

KIVY_NO_CONSOLELOG

如果设置,日志将不会打印到控制台

KIVY_NO_ARGS

如果设置为 ('true', '1', 'yes') 之一,命令行中传递的参数将不会被 Kivy 解析和使用。也就是说,您可以使用自己的参数安全地制作脚本或应用程序,而无需-分隔符:

import os
os.environ["KIVY_NO_ARGS"] = "1"
import kivy

新版本 1.9.0。

KCFG_section_key

如果检测到这样的格式环境名称,它将被映射到 Config 对象。当导入kivy时,它们只加载一次。可以使用KIVY_NO_ENV_CONFIG禁用该行为。

import os
os.environ["KCFG_KIVY_LOG_LEVEL"] = "warning"
import kivy
# during import it will map it to:
# Config.set("kivy", "log_level", "warning")

新版本 1.11.0。

KIVY_NO_ENV_CONFIG

如果设置,则没有环境密钥将映射到配置对象。如果未设置,任何KCFG_section_key=value都将映射到 Config。

新版本 1.11.0。

将核心限制在特定的实现上

kivy.core尝试选择适用于您的平台的最佳实现。对于测试或自定义安装,您可能希望将选择器限制为特定的实现。

KIVY_WINDOW 窗口

用于创建窗口的实现

值:sdl2、pygame、x11、egl_rpi

KIVY_TEXT

用于渲染文本的实现

值:sdl2、pil、pygame、sdlttf

KIVY_VIDEAO

用于渲染视频的实现

值:gstplayer、ffpyplayer、ffmpeg、null

KIVY_AUDIO

用于播放音频的实现

值:sdl2、gstplayer、ffpyplayer、pygame、avplayer

KIVY_IMAGE

用于读取图像的实现

值:sdl2、pil、pygame、imageio、tex、dds

在版本 2.0.0 中更改。

删除了 GPL gif实现

KIVY_CAMERA

用于读取相机的实现

值:avfoundation、android、opencv

KIVY_SPELLING

用于拼写的实现

值:附魔,osxappkit

KIVY_CLIPBOARD

用于剪贴板管理的实现

值:sdl2、pygame、dummy、android

指标

KIVY_DPI

如果设置,该值将用于Metrics.dpi

版本 1.4.0 的新内容

KIVY_METRICS_DENSITY

如果设置,该值将用于Metrics.density

版本 1.5.0 的新内容

KIVY_METRICS_FONTSCALE

如果设置,该值将用于Metrics.fontscale

在版本 1.5.0 中出现

图形

KIVY_GL_BACKEND

要使用的 OpenGL 后端。看cgl

KIVY_GL_DEBUG

是否记录 OpenGL 调用。看cgl

KIVY_GRAPHICS

是否使用 OpenGL ES2。看cgl

KIVY_GLES_LIMITS

是否强制执行 GLES2 限制(默认值,或者如果设置为 1)。如果设置为 false,Kivy 将不会真正兼容 GLES2。

以下是设置为 true 时导致的潜在不兼容性列表。

网格索引

如果为真,则网格中的索引数限制为 65535

纹理块

当 blitting 到纹理时,数据(颜色和缓冲区)格式必须与纹理创建时使用的格式相同。在桌面上,不同颜色的转换由驱动程序正确处理,而在 Android 上,大多数设备无法做到这一点。参考:https: //github.com/kivy/kivy/issues/1600

版本 1.8.1 的新内容

KIVY_BCM_DISPMANX_ID

更改要使用的默认 Raspberry Pi 显示。可用值列表可在vc_dispmanx_types.h中访问。默认值为 0:

  • 0:DISPMANX_ID_MAIN_LCD

  • 1:DISPMANIX_ID_AUX_LCD

  • 2:DISPMANIX_ID_HDMI

  • 3:DISPMANIX_ID_SDTV

  • 4:DISPMANX_ID_FORCE_LCD

  • 5:DISPMANIX_ID_FORCE_TV

  • 6:DISPMANIX_ID_FORCE_OTHER

KIVY_BCM_DISPMANIX_LAYER

更改默认的 Raspberry Pi dispmanx 层。默认值为 0。

版本 1.10.1 的新内容

事件循环

KIVY_EVENTLOOP

当应用程序以异步方式运行时,应使用哪个异步库。请参阅kivy.app示例用法。

'asyncio':当应用程序以异步方式并使用标准 library asyncio 包时。如果未设置,则它为默认值。

'trio':当应用程序以异步方式运行并且使用包trio

版本 2.0.0 的新内容

Last updated