四、編程向?qū)?4.2控制環(huán)境)

編程向?qū)?.2 控制環(huán)境

許多環(huán)境變量可以用來(lái)控制Kivy的初始化和行為。
例如限制文本渲染使用PIL實(shí)現(xiàn):

$ KIVY_TEXT = pil python main.py

環(huán)境變量需要在導(dǎo)入Kiry之前設(shè)置:

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

一、路徑控制

V1.0.7版本加入

你可以控制諸如配置文件、模塊、擴(kuò)展和Kivy數(shù)據(jù)的默認(rèn)路徑

KIVY_DATA_DIR:Kivy數(shù)據(jù)默認(rèn)路徑<kivy path>/data

KIVY_EXTS_DIR:Kivy擴(kuò)展默認(rèn)路徑<kivy path>/extensions

KIVY_MODULES_DIR:Kivy模塊默認(rèn)路徑<kivy path>/modules

KIVY_HOME:Kivy主默認(rèn)路徑,該路徑被用來(lái)作為本地配置,該路徑必須是可寫(xiě)入的,默認(rèn)為:

  • 桌面系統(tǒng):<user home\>/.kivy
    
  • 安卓系統(tǒng):<android app path\>.kivy
    
  • IOS 系統(tǒng):<user home\>/Documents/.kivy
    
V1.9.0版本加入

KIVY_SDL2_PATH:如果設(shè)置,在編譯Kivy時(shí)將從該路徑尋找SDL2庫(kù)和頭文件,代替系統(tǒng)方面的路徑。為使用相同的庫(kù),在編譯Kivy應(yīng)用程序時(shí),路徑必須在PATH環(huán)境變量啟動(dòng)前添加。

在編譯Kivy時(shí)必須使用,在執(zhí)行時(shí)沒(méi)有必要。

二、配置

KIVY_USER_DEFAULTCONFIG:如果該配置被設(shè)置,則Kivy不會(huì)讀取用戶的配置文件

KIVY_NO_CONFIG:如果設(shè)置,則沒(méi)有配置文件及用戶配置路徑進(jìn)行讀寫(xiě)

KIVY_NO_FILELOG:如果設(shè)置,則不會(huì)記錄日志到一個(gè)文件

KIVY_NO_CONSOLELOG:如果設(shè)置,則日志不會(huì)輸出到控制臺(tái)

V1.9.0版本加入

KIVY_NO_ARGS:如果設(shè)置,則在命令行傳遞的參數(shù)將不被解析,例如,你可以安全的使用你自己的不需要-分隔符的參數(shù)寫(xiě)一個(gè)腳本或應(yīng)用程序:

import os
os.environ['KIVY_NO_ARGS'] = "l"
import kivy

三、限制核心到特定實(shí)現(xiàn)

kivy.core在你的系統(tǒng)平臺(tái)中嘗試選擇最佳實(shí)現(xiàn)。為了測(cè)試或定制安裝,你也許想限制選擇一個(gè)特定的實(shí)現(xiàn)。

KIVY_WINDOW:創(chuàng)建一個(gè)窗口的實(shí)現(xiàn),可選值為sdl2,pygame,x11, egl_rpi

KIVY_TEXT:渲染文本的實(shí)現(xiàn),可選值為sdl2, pil, pygame, sdlttf

KIVY_VIDEO:渲染視頻的實(shí)現(xiàn),可選值為pygst, gstplayer, pyglet, ffpyplayer, null

KIVY_AUDIO:播放音頻的實(shí)現(xiàn),可選值為sdl2, gstplayer, pygst, ffpyplayer, pygame

KIVY_IMAGE:讀取圖像的實(shí)現(xiàn),可選值為sdl2, pil, pygame, imageio, tex, dds, gif

KIVY_CAMERA:讀取攝像頭的實(shí)現(xiàn),可選值為videocapture, avfoundation, pygst, opencv

KIVY_SPELLING:拼寫(xiě)的實(shí)現(xiàn),可選值為enchant, osxappkit

KIVY_CLIPBOARD:剪切板管理的實(shí)現(xiàn),可選值為sdl2, pygame, dummy, android

四、度量

V1.4.0版本加入

KIVY_DPI:如果設(shè)置,則單位使用Metrics.dpi

V1.5.0版本加入

KIVY_METRICS_DENSITY:如果設(shè)置,則單位使用Metrics.density

V1.5.0加入

KIVY_METRICS_FONTSCALE:如果設(shè)置,則單位使用Metrics.fontscale

五、圖像

KIVY_GLES_LIMITS:是否GLES2限制被執(zhí)行。如果設(shè)置為false,Kivy將不會(huì)真正的GLES2兼容。下面是一個(gè)當(dāng)被設(shè)置為T(mén)rue時(shí)的潛在的不兼容列表

  • Mesh indices(網(wǎng)格索引):如果為T(mén)rue,則一個(gè)網(wǎng)格里面的索引被限制到65535.
  • Texture blit(材質(zhì)位塊傳輸):當(dāng)傳輸材質(zhì)時(shí),顏色和緩沖的數(shù)據(jù)格式必須同材質(zhì)被創(chuàng)建時(shí)的格式相同。在桌面系統(tǒng)上,不同顏色間的轉(zhuǎn)換被驅(qū)動(dòng)程序處理。在安卓系統(tǒng)上,大多數(shù)的設(shè)備會(huì)造成失敗。
V1.8.1版本加入

KIVY_BCM_DISPMANX_ID:改變默認(rèn)的用來(lái)顯示Raspberry Pi,默認(rèn)值為0,可選值如下:

    0: DISPMANX_ID_MAIN_LCD

    1: DISPMANX_ID_AUX_LCD

    2: DISPMANX_ID_HDMI

    3: DISPMANX_ID_SDTV

    4: DISPMANX_ID_FORCE_LCD

    5: DISPMANX_ID_FORCE_TV

    6: DISPMANX_ID_FORCE_OTHER

下節(jié)預(yù)告:編程向?qū)?.3配置Kivy

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容