編程向?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\>.kivyIOS 系統(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