在 统信UOS(Deepin/UOS) 上进行 Kivy 移动应用开发时,使用 Python 虚拟环境(如 venv
或 pipenv
)能有效隔离项目依赖,避免系统 Python 环境冲突。以下是详细配置方法:
1. 使用 venv
(Python 内置工具)
1.1 创建虚拟环境
# 进入项目目录
mkdir my_kivy_app && cd my_kivy_app
# 创建虚拟环境(默认使用 Python 3)
python3 -m venv venv # 会在当前目录生成 `venv` 文件夹
1.2 激活虚拟环境
source venv/bin/activate # 激活后终端提示符会显示 `(venv)`
激活后,所有 pip
安装的包仅作用于该环境。
1.3 安装 Kivy 及其他依赖
(venv) pip install --upgrade pip
(venv) pip install kivy[full] buildozer # 安装 Kivy 和打包工具
1.4 退出虚拟环境
deactivate
2. 使用 pipenv
(更高级的依赖管理)
2.1 安装 pipenv
sudo apt update
sudo apt install python3-pip # 确保 pip 已安装
pip3 install --user pipenv # 用户级安装
2.2 创建虚拟环境并安装依赖
cd my_kivy_app
pipenv --python 3.8 # 指定 Python 版本(需已安装)
pipenv install kivy[full] buildozer # 自动创建虚拟环境并安装
2.3 激活虚拟环境
pipenv shell # 进入虚拟环境
2.4 管理依赖
- 添加新依赖:
pipenv install package_name
- 生成依赖文件:
pipenv lock -r > requirements.txt
3. 虚拟环境下的 Kivy 开发流程
3.1 开发阶段
- 在虚拟环境中运行 Kivy 应用:
(venv) python main.py # 或通过 pipenv shell 后直接运行
- 使用
buildozer
打包时,确保虚拟环境已激活:(venv) buildozer init (venv) buildozer -v android debug
3.2 统信UOS专属配置
- 解决 OpenGL 依赖问题:
sudo apt install libgl1-mesa-dev libgles2-mesa-dev # 确保 GPU 加速支持
- Wayland 兼容性(可选):
export GDK_BACKEND=x11 # 在虚拟环境中临时切换显示协议
4. 虚拟环境优势与注意事项
优势
- 依赖隔离:避免不同项目的 Kivy 版本冲突。
- 便携性:可通过
requirements.txt
或Pipfile
快速复现环境。 - 权限安全:无需
sudo
安装 Python 包。
注意事项
- 虚拟环境不包含系统工具:如
buildozer
需要的 JDK、Android SDK 仍需全局安装。 - 统信UOS的 Python 版本:确保虚拟环境使用的 Python 版本与系统兼容(建议 Python 3.6+)。
5. 示例:从零启动一个 Kivy 项目
步骤1:创建并激活虚拟环境
python3 -m venv kivy_venv
source kivy_venv/bin/activate
步骤2:安装 Kivy 和 Buildozer
pip install kivy[full] buildozer
步骤3:编写测试代码(main.py
)
from kivy.app import App
from kivy.uix.label import Label
class MyApp(App):
def build(self):
return Label(text="Hello UOS with Kivy!")
if __name__ == "__main__":
MyApp().run()
步骤4:运行测试
python main.py # 确认虚拟环境中 Kivy 正常工作
总结
在统信UOS上通过虚拟环境开发 Kivy 移动应用的推荐方式:
- 简单项目:使用
venv
+requirements.txt
。 - 复杂依赖:使用
pipenv
自动管理Pipfile
。 - 关键点:
- 始终在虚拟环境中安装 Python 依赖。
- 全局配置 Android 工具链(JDK/SDK/NDK)。
- 通过
buildozer.spec
文件定义移动端打包参数。