ezgo 0.0.7__tar.gz → 0.0.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ezgo
3
- Version: 0.0.7
3
+ Version: 0.0.9
4
4
  Summary: 宇树Go2机器狗Python控制库
5
5
  Author-email: ezgo <noreply@example.com>
6
6
  License: MIT
@@ -49,8 +49,6 @@ Requires-Dist: Pillow>=8.0.0; extra == "basic"
49
49
  - 📷 **摄像头控制**: 支持图片获取和视频流处理
50
50
  - 🔊 **声光控制**: 支持LED灯光和音量控制
51
51
  - 🎮 **UI界面**: 提供图形化控制界面
52
- - 🖼️ **EasyTk界面**: 简化的tkinter界面封装,适合教学使用
53
- - 📹 **EzCamera摄像头**: 优化的摄像头控制,支持多平台和硬件加速
54
52
  - 🔧 **易于使用**: 简洁的API设计,支持懒加载
55
53
  - 📦 **可选依赖**: 核心功能轻量,按需安装依赖
56
54
 
@@ -214,64 +212,6 @@ if robot.init():
214
212
  robot.AutoRecoverSet(False)
215
213
  ```
216
214
 
217
- ### EasyTk 简化界面开发
218
-
219
- ```python
220
- import ezgo
221
-
222
- # 创建EasyTk窗口(自动适配灵芯派480x800分辨率)
223
- app = ezgo.EasyTk(title="机器狗控制", size="480x800")
224
-
225
- # 添加标签
226
- label = app.add_label(text="欢迎使用ezgo", font=("SimHei", 24))
227
-
228
- # 添加按钮
229
- def on_click():
230
- print("按钮被点击了!")
231
-
232
- button = app.add_button(text="点击我", command=on_click)
233
-
234
- # 添加图片显示(支持文件路径、OpenCV图像、PIL图像)
235
- image_label = app.add_label(image="path/to/image.jpg")
236
-
237
- # 运行主循环
238
- app.root.mainloop()
239
- ```
240
-
241
- ### EzCamera 优化摄像头控制
242
-
243
- ```python
244
- import ezgo
245
- import cv2
246
-
247
- # 创建摄像头对象(自动适配平台)
248
- camera = ezgo.EzCamera(index=0, width=640, height=480, fps=30)
249
-
250
- # 打开摄像头
251
- if camera.open():
252
- print("摄像头打开成功!")
253
-
254
- # 读取最新帧
255
- frame = camera.read()
256
- if frame is not None:
257
- # 保存图片
258
- camera.save_image(frame, "capture.jpg")
259
-
260
- # 调整尺寸
261
- resized = camera.resize(frame, (224, 224))
262
-
263
- # 裁剪为正方形
264
- square = camera.crop_to_square(frame)
265
-
266
- # 显示图像
267
- cv2.imshow("Camera", frame)
268
- cv2.waitKey(0)
269
- cv2.destroyAllWindows()
270
-
271
- # 关闭摄像头
272
- camera.close()
273
- ```
274
-
275
215
  ## API 参考
276
216
 
277
217
  ### Go2 类
@@ -367,47 +307,6 @@ if camera.open():
367
307
  - `set_volume(level)`: 设置音量 (0-10)
368
308
  - `get_volume()`: 获取当前音量
369
309
 
370
- ### EasyTk 类
371
-
372
- 简化的tkinter界面封装,专为教学和快速开发设计。
373
-
374
- #### 主要方法
375
-
376
- - `__init__(title="APP", size=None)`: 初始化窗口,自动适配灵芯派
377
- - `add_frame(master=None, **kwargs)`: 添加框架容器
378
- - `add_label(master=None, **kwargs)`: 添加标签,支持文本和图片
379
- - `add_button(master=None, **kwargs)`: 添加按钮
380
- - `config(widget, **kwargs)`: 配置组件属性
381
-
382
- #### 特性
383
-
384
- - **自动适配**: 在Linux系统下自动设置480x800分辨率和全屏模式
385
- - **简化布局**: 使用pack布局,简化界面开发
386
- - **图片支持**: 直接支持文件路径、OpenCV图像、PIL图像
387
- - **教学友好**: 适合学生快速上手GUI开发
388
-
389
- ### EzCamera 类
390
-
391
- 优化的摄像头控制类,支持多平台和硬件加速。
392
-
393
- #### 主要方法
394
-
395
- - `__init__(index=0, width=640, height=480, fps=30)`: 初始化摄像头
396
- - `open(timeout=5)`: 打开摄像头,支持硬件加速
397
- - `read()`: 读取最新帧(非阻塞)
398
- - `save_image(frame, filename="frame.jpg")`: 保存图像
399
- - `resize(frame, size=(224, 224))`: 调整图像尺寸
400
- - `crop_to_square(frame)`: 裁剪为正方形
401
- - `close()`: 关闭摄像头
402
-
403
- #### 特性
404
-
405
- - **多平台支持**: Linux(V4L2)、Windows(DSHOW)、macOS自动适配
406
- - **硬件加速**: 支持MJPG格式和缓冲区优化
407
- - **双缓冲**: 使用双缓冲机制避免图像撕裂
408
- - **线程安全**: 独立读取线程,主线程非阻塞
409
- - **帧率控制**: 精确的帧率控制,避免累积误差
410
-
411
310
  ## 依赖要求
412
311
 
413
312
  ### 核心依赖
@@ -460,24 +359,27 @@ pip install opencv-python numpy Pillow netifaces
460
359
 
461
360
  ## 更新日志
462
361
 
463
- ### v0.0.7 (2025-12-09)
464
- **新增功能**:
465
- - 新增EasyTk简化界面封装类,专为教学设计
466
- - 新增EzCamera优化摄像头控制类,支持多平台硬件加速
467
- - EasyTk自动适配灵芯派480x800分辨率和全屏模式
468
- - EzCamera支持双缓冲机制和线程安全读取
469
- - ✨ 完善图片处理功能:调整尺寸、裁剪正方形、保存图像
362
+ ### v0.0.9 (2025-12-09)
363
+ **改进**:
364
+ - 🔧 实现懒加载机制,避免导入时的依赖检查
365
+ - 🔧 只在实际使用Go2相关功能时才检查依赖
366
+ - 🔧 eztk和ezcamera模块可直接使用,无任何依赖警告
367
+ - 🔧 优化模块导入结构,提升用户体验
368
+
369
+ **修复**:
370
+ - 🐛 修复导入ezgo时提示netifaces等依赖缺失的问题
371
+ - 🐛 修复使用eztk/ezcamera时的不必要警告
372
+ - 🐛 实现真正的按需依赖检查机制
470
373
 
374
+ ### v0.0.8 (2025-12-09)
471
375
  **改进**:
472
- - 🔧 优化模块导入结构,新增EasyTk和EzCamera到公开API
473
- - 🔧 增强平台兼容性,自动检测并适配不同操作系统
474
- - 🔧 完善文档,添加详细的使用示例和API说明
475
- - 🔧 改进错误处理,提供更友好的错误提示
476
-
477
- **特性**:
478
- - 🖼️ EasyTk支持直接显示文件路径、OpenCV图像、PIL图像
479
- - 📹 EzCamera支持MJPG硬件加速和V4L2优化
480
- - 🎯 教学友好,简化GUI开发和摄像头操作流程
376
+ - 🔧 移除自动依赖检查逻辑,避免导入时的警告提示
377
+ - 🔧 用户按需使用功能,不再强制检查所有依赖
378
+ - 🔧 提升用户体验,减少不必要的警告信息
379
+
380
+ **修复**:
381
+ - 🐛 修复使用eztk时频繁提示unitree-sdk2py依赖的问题
382
+ - 🐛 修复导入库时自动检查所有模块依赖的逻辑
481
383
 
482
384
  ### v0.0.5 (2025-12-04)
483
385
  **新增功能**:
@@ -14,8 +14,6 @@
14
14
  - 📷 **摄像头控制**: 支持图片获取和视频流处理
15
15
  - 🔊 **声光控制**: 支持LED灯光和音量控制
16
16
  - 🎮 **UI界面**: 提供图形化控制界面
17
- - 🖼️ **EasyTk界面**: 简化的tkinter界面封装,适合教学使用
18
- - 📹 **EzCamera摄像头**: 优化的摄像头控制,支持多平台和硬件加速
19
17
  - 🔧 **易于使用**: 简洁的API设计,支持懒加载
20
18
  - 📦 **可选依赖**: 核心功能轻量,按需安装依赖
21
19
 
@@ -179,64 +177,6 @@ if robot.init():
179
177
  robot.AutoRecoverSet(False)
180
178
  ```
181
179
 
182
- ### EasyTk 简化界面开发
183
-
184
- ```python
185
- import ezgo
186
-
187
- # 创建EasyTk窗口(自动适配灵芯派480x800分辨率)
188
- app = ezgo.EasyTk(title="机器狗控制", size="480x800")
189
-
190
- # 添加标签
191
- label = app.add_label(text="欢迎使用ezgo", font=("SimHei", 24))
192
-
193
- # 添加按钮
194
- def on_click():
195
- print("按钮被点击了!")
196
-
197
- button = app.add_button(text="点击我", command=on_click)
198
-
199
- # 添加图片显示(支持文件路径、OpenCV图像、PIL图像)
200
- image_label = app.add_label(image="path/to/image.jpg")
201
-
202
- # 运行主循环
203
- app.root.mainloop()
204
- ```
205
-
206
- ### EzCamera 优化摄像头控制
207
-
208
- ```python
209
- import ezgo
210
- import cv2
211
-
212
- # 创建摄像头对象(自动适配平台)
213
- camera = ezgo.EzCamera(index=0, width=640, height=480, fps=30)
214
-
215
- # 打开摄像头
216
- if camera.open():
217
- print("摄像头打开成功!")
218
-
219
- # 读取最新帧
220
- frame = camera.read()
221
- if frame is not None:
222
- # 保存图片
223
- camera.save_image(frame, "capture.jpg")
224
-
225
- # 调整尺寸
226
- resized = camera.resize(frame, (224, 224))
227
-
228
- # 裁剪为正方形
229
- square = camera.crop_to_square(frame)
230
-
231
- # 显示图像
232
- cv2.imshow("Camera", frame)
233
- cv2.waitKey(0)
234
- cv2.destroyAllWindows()
235
-
236
- # 关闭摄像头
237
- camera.close()
238
- ```
239
-
240
180
  ## API 参考
241
181
 
242
182
  ### Go2 类
@@ -332,47 +272,6 @@ if camera.open():
332
272
  - `set_volume(level)`: 设置音量 (0-10)
333
273
  - `get_volume()`: 获取当前音量
334
274
 
335
- ### EasyTk 类
336
-
337
- 简化的tkinter界面封装,专为教学和快速开发设计。
338
-
339
- #### 主要方法
340
-
341
- - `__init__(title="APP", size=None)`: 初始化窗口,自动适配灵芯派
342
- - `add_frame(master=None, **kwargs)`: 添加框架容器
343
- - `add_label(master=None, **kwargs)`: 添加标签,支持文本和图片
344
- - `add_button(master=None, **kwargs)`: 添加按钮
345
- - `config(widget, **kwargs)`: 配置组件属性
346
-
347
- #### 特性
348
-
349
- - **自动适配**: 在Linux系统下自动设置480x800分辨率和全屏模式
350
- - **简化布局**: 使用pack布局,简化界面开发
351
- - **图片支持**: 直接支持文件路径、OpenCV图像、PIL图像
352
- - **教学友好**: 适合学生快速上手GUI开发
353
-
354
- ### EzCamera 类
355
-
356
- 优化的摄像头控制类,支持多平台和硬件加速。
357
-
358
- #### 主要方法
359
-
360
- - `__init__(index=0, width=640, height=480, fps=30)`: 初始化摄像头
361
- - `open(timeout=5)`: 打开摄像头,支持硬件加速
362
- - `read()`: 读取最新帧(非阻塞)
363
- - `save_image(frame, filename="frame.jpg")`: 保存图像
364
- - `resize(frame, size=(224, 224))`: 调整图像尺寸
365
- - `crop_to_square(frame)`: 裁剪为正方形
366
- - `close()`: 关闭摄像头
367
-
368
- #### 特性
369
-
370
- - **多平台支持**: Linux(V4L2)、Windows(DSHOW)、macOS自动适配
371
- - **硬件加速**: 支持MJPG格式和缓冲区优化
372
- - **双缓冲**: 使用双缓冲机制避免图像撕裂
373
- - **线程安全**: 独立读取线程,主线程非阻塞
374
- - **帧率控制**: 精确的帧率控制,避免累积误差
375
-
376
275
  ## 依赖要求
377
276
 
378
277
  ### 核心依赖
@@ -425,24 +324,27 @@ pip install opencv-python numpy Pillow netifaces
425
324
 
426
325
  ## 更新日志
427
326
 
428
- ### v0.0.7 (2025-12-09)
429
- **新增功能**:
430
- - 新增EasyTk简化界面封装类,专为教学设计
431
- - 新增EzCamera优化摄像头控制类,支持多平台硬件加速
432
- - EasyTk自动适配灵芯派480x800分辨率和全屏模式
433
- - EzCamera支持双缓冲机制和线程安全读取
434
- - ✨ 完善图片处理功能:调整尺寸、裁剪正方形、保存图像
327
+ ### v0.0.9 (2025-12-09)
328
+ **改进**:
329
+ - 🔧 实现懒加载机制,避免导入时的依赖检查
330
+ - 🔧 只在实际使用Go2相关功能时才检查依赖
331
+ - 🔧 eztk和ezcamera模块可直接使用,无任何依赖警告
332
+ - 🔧 优化模块导入结构,提升用户体验
333
+
334
+ **修复**:
335
+ - 🐛 修复导入ezgo时提示netifaces等依赖缺失的问题
336
+ - 🐛 修复使用eztk/ezcamera时的不必要警告
337
+ - 🐛 实现真正的按需依赖检查机制
435
338
 
339
+ ### v0.0.8 (2025-12-09)
436
340
  **改进**:
437
- - 🔧 优化模块导入结构,新增EasyTk和EzCamera到公开API
438
- - 🔧 增强平台兼容性,自动检测并适配不同操作系统
439
- - 🔧 完善文档,添加详细的使用示例和API说明
440
- - 🔧 改进错误处理,提供更友好的错误提示
441
-
442
- **特性**:
443
- - 🖼️ EasyTk支持直接显示文件路径、OpenCV图像、PIL图像
444
- - 📹 EzCamera支持MJPG硬件加速和V4L2优化
445
- - 🎯 教学友好,简化GUI开发和摄像头操作流程
341
+ - 🔧 移除自动依赖检查逻辑,避免导入时的警告提示
342
+ - 🔧 用户按需使用功能,不再强制检查所有依赖
343
+ - 🔧 提升用户体验,减少不必要的警告信息
344
+
345
+ **修复**:
346
+ - 🐛 修复使用eztk时频繁提示unitree-sdk2py依赖的问题
347
+ - 🐛 修复导入库时自动检查所有模块依赖的逻辑
446
348
 
447
349
  ### v0.0.5 (2025-12-04)
448
350
  **新增功能**:
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ezgo"
7
- version = "0.0.7"
7
+ version = "0.0.9"
8
8
  description = "宇树Go2机器狗Python控制库"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.7"
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+
4
+ """
5
+ ezgo - 宇树Go2机器狗Python控制库
6
+
7
+ 这是一个用于控制宇树Go2机器狗的Python库,提供了简单易用的API接口。
8
+ 支持运动控制、视频流获取、UI界面等功能。
9
+ """
10
+
11
+ __version__ = "0.0.9"
12
+ __author__ = "ezgo"
13
+ __email__ = ""
14
+ __license__ = "MIT"
15
+
16
+ # 懒加载模块 - 只在实际使用时才导入
17
+ def _lazy_import(module_name, class_name):
18
+ """懒加载模块,避免导入时的依赖检查"""
19
+ def _import():
20
+ try:
21
+ module = __import__(f'.{module_name}', package=__name__, fromlist=[class_name])
22
+ return getattr(module, class_name)
23
+ except ImportError as e:
24
+ # 只在使用时才提示依赖缺失
25
+ raise ImportError(f"使用 {class_name} 需要安装额外依赖: {e}")
26
+ return _import
27
+
28
+ # 定义懒加载函数
29
+ _Go2 = _lazy_import('go2', 'Go2')
30
+ _Camera = _lazy_import('camera', 'Camera')
31
+ _APP = _lazy_import('ui', 'APP')
32
+ _Go2Camera = _lazy_import('go2_camera', 'Go2Camera')
33
+ _Go2VUI = _lazy_import('go2_vui', 'Go2VUI')
34
+
35
+ # 直接导入不需要额外依赖的模块
36
+ try:
37
+ from .eztk import EasyTk
38
+ from .ezcamera import Camera as EzCamera
39
+ except ImportError as e:
40
+ # 这些模块应该能正常导入,如果失败则显示错误
41
+ print(f"错误: 无法导入核心模块: {e}")
42
+ EasyTk = None
43
+ EzCamera = None
44
+
45
+ # 定义公开的API
46
+ __all__ = [
47
+ "Go2",
48
+ "Camera",
49
+ "APP",
50
+ "Go2Camera",
51
+ "Go2VUI",
52
+ "EasyTk",
53
+ "EzCamera",
54
+ "__version__"
55
+ ]
56
+
57
+ # 懒加载属性访问器
58
+ class _LazyModule:
59
+ def __init__(self, import_func):
60
+ self._import_func = import_func
61
+ self._module = None
62
+
63
+ def __call__(self, *args, **kwargs):
64
+ if self._module is None:
65
+ self._module = self._import_func()
66
+ return self._module(*args, **kwargs)
67
+
68
+ def __getattr__(self, name):
69
+ if self._module is None:
70
+ self._module = self._import_func()
71
+ return getattr(self._module, name)
72
+
73
+ # 创建懒加载对象
74
+ Go2 = _LazyModule(_Go2)
75
+ Camera = _LazyModule(_Camera)
76
+ APP = _LazyModule(_APP)
77
+ Go2Camera = _LazyModule(_Go2Camera)
78
+ Go2VUI = _LazyModule(_Go2VUI)
79
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ezgo
3
- Version: 0.0.7
3
+ Version: 0.0.9
4
4
  Summary: 宇树Go2机器狗Python控制库
5
5
  Author-email: ezgo <noreply@example.com>
6
6
  License: MIT
@@ -49,8 +49,6 @@ Requires-Dist: Pillow>=8.0.0; extra == "basic"
49
49
  - 📷 **摄像头控制**: 支持图片获取和视频流处理
50
50
  - 🔊 **声光控制**: 支持LED灯光和音量控制
51
51
  - 🎮 **UI界面**: 提供图形化控制界面
52
- - 🖼️ **EasyTk界面**: 简化的tkinter界面封装,适合教学使用
53
- - 📹 **EzCamera摄像头**: 优化的摄像头控制,支持多平台和硬件加速
54
52
  - 🔧 **易于使用**: 简洁的API设计,支持懒加载
55
53
  - 📦 **可选依赖**: 核心功能轻量,按需安装依赖
56
54
 
@@ -214,64 +212,6 @@ if robot.init():
214
212
  robot.AutoRecoverSet(False)
215
213
  ```
216
214
 
217
- ### EasyTk 简化界面开发
218
-
219
- ```python
220
- import ezgo
221
-
222
- # 创建EasyTk窗口(自动适配灵芯派480x800分辨率)
223
- app = ezgo.EasyTk(title="机器狗控制", size="480x800")
224
-
225
- # 添加标签
226
- label = app.add_label(text="欢迎使用ezgo", font=("SimHei", 24))
227
-
228
- # 添加按钮
229
- def on_click():
230
- print("按钮被点击了!")
231
-
232
- button = app.add_button(text="点击我", command=on_click)
233
-
234
- # 添加图片显示(支持文件路径、OpenCV图像、PIL图像)
235
- image_label = app.add_label(image="path/to/image.jpg")
236
-
237
- # 运行主循环
238
- app.root.mainloop()
239
- ```
240
-
241
- ### EzCamera 优化摄像头控制
242
-
243
- ```python
244
- import ezgo
245
- import cv2
246
-
247
- # 创建摄像头对象(自动适配平台)
248
- camera = ezgo.EzCamera(index=0, width=640, height=480, fps=30)
249
-
250
- # 打开摄像头
251
- if camera.open():
252
- print("摄像头打开成功!")
253
-
254
- # 读取最新帧
255
- frame = camera.read()
256
- if frame is not None:
257
- # 保存图片
258
- camera.save_image(frame, "capture.jpg")
259
-
260
- # 调整尺寸
261
- resized = camera.resize(frame, (224, 224))
262
-
263
- # 裁剪为正方形
264
- square = camera.crop_to_square(frame)
265
-
266
- # 显示图像
267
- cv2.imshow("Camera", frame)
268
- cv2.waitKey(0)
269
- cv2.destroyAllWindows()
270
-
271
- # 关闭摄像头
272
- camera.close()
273
- ```
274
-
275
215
  ## API 参考
276
216
 
277
217
  ### Go2 类
@@ -367,47 +307,6 @@ if camera.open():
367
307
  - `set_volume(level)`: 设置音量 (0-10)
368
308
  - `get_volume()`: 获取当前音量
369
309
 
370
- ### EasyTk 类
371
-
372
- 简化的tkinter界面封装,专为教学和快速开发设计。
373
-
374
- #### 主要方法
375
-
376
- - `__init__(title="APP", size=None)`: 初始化窗口,自动适配灵芯派
377
- - `add_frame(master=None, **kwargs)`: 添加框架容器
378
- - `add_label(master=None, **kwargs)`: 添加标签,支持文本和图片
379
- - `add_button(master=None, **kwargs)`: 添加按钮
380
- - `config(widget, **kwargs)`: 配置组件属性
381
-
382
- #### 特性
383
-
384
- - **自动适配**: 在Linux系统下自动设置480x800分辨率和全屏模式
385
- - **简化布局**: 使用pack布局,简化界面开发
386
- - **图片支持**: 直接支持文件路径、OpenCV图像、PIL图像
387
- - **教学友好**: 适合学生快速上手GUI开发
388
-
389
- ### EzCamera 类
390
-
391
- 优化的摄像头控制类,支持多平台和硬件加速。
392
-
393
- #### 主要方法
394
-
395
- - `__init__(index=0, width=640, height=480, fps=30)`: 初始化摄像头
396
- - `open(timeout=5)`: 打开摄像头,支持硬件加速
397
- - `read()`: 读取最新帧(非阻塞)
398
- - `save_image(frame, filename="frame.jpg")`: 保存图像
399
- - `resize(frame, size=(224, 224))`: 调整图像尺寸
400
- - `crop_to_square(frame)`: 裁剪为正方形
401
- - `close()`: 关闭摄像头
402
-
403
- #### 特性
404
-
405
- - **多平台支持**: Linux(V4L2)、Windows(DSHOW)、macOS自动适配
406
- - **硬件加速**: 支持MJPG格式和缓冲区优化
407
- - **双缓冲**: 使用双缓冲机制避免图像撕裂
408
- - **线程安全**: 独立读取线程,主线程非阻塞
409
- - **帧率控制**: 精确的帧率控制,避免累积误差
410
-
411
310
  ## 依赖要求
412
311
 
413
312
  ### 核心依赖
@@ -460,24 +359,27 @@ pip install opencv-python numpy Pillow netifaces
460
359
 
461
360
  ## 更新日志
462
361
 
463
- ### v0.0.7 (2025-12-09)
464
- **新增功能**:
465
- - 新增EasyTk简化界面封装类,专为教学设计
466
- - 新增EzCamera优化摄像头控制类,支持多平台硬件加速
467
- - EasyTk自动适配灵芯派480x800分辨率和全屏模式
468
- - EzCamera支持双缓冲机制和线程安全读取
469
- - ✨ 完善图片处理功能:调整尺寸、裁剪正方形、保存图像
362
+ ### v0.0.9 (2025-12-09)
363
+ **改进**:
364
+ - 🔧 实现懒加载机制,避免导入时的依赖检查
365
+ - 🔧 只在实际使用Go2相关功能时才检查依赖
366
+ - 🔧 eztk和ezcamera模块可直接使用,无任何依赖警告
367
+ - 🔧 优化模块导入结构,提升用户体验
368
+
369
+ **修复**:
370
+ - 🐛 修复导入ezgo时提示netifaces等依赖缺失的问题
371
+ - 🐛 修复使用eztk/ezcamera时的不必要警告
372
+ - 🐛 实现真正的按需依赖检查机制
470
373
 
374
+ ### v0.0.8 (2025-12-09)
471
375
  **改进**:
472
- - 🔧 优化模块导入结构,新增EasyTk和EzCamera到公开API
473
- - 🔧 增强平台兼容性,自动检测并适配不同操作系统
474
- - 🔧 完善文档,添加详细的使用示例和API说明
475
- - 🔧 改进错误处理,提供更友好的错误提示
476
-
477
- **特性**:
478
- - 🖼️ EasyTk支持直接显示文件路径、OpenCV图像、PIL图像
479
- - 📹 EzCamera支持MJPG硬件加速和V4L2优化
480
- - 🎯 教学友好,简化GUI开发和摄像头操作流程
376
+ - 🔧 移除自动依赖检查逻辑,避免导入时的警告提示
377
+ - 🔧 用户按需使用功能,不再强制检查所有依赖
378
+ - 🔧 提升用户体验,减少不必要的警告信息
379
+
380
+ **修复**:
381
+ - 🐛 修复使用eztk时频繁提示unitree-sdk2py依赖的问题
382
+ - 🐛 修复导入库时自动检查所有模块依赖的逻辑
481
383
 
482
384
  ### v0.0.5 (2025-12-04)
483
385
  **新增功能**:
@@ -1,93 +0,0 @@
1
- #!/usr/bin/env python3
2
- # -*- coding: utf-8 -*-
3
-
4
- """
5
- ezgo - 宇树Go2机器狗Python控制库
6
-
7
- 这是一个用于控制宇树Go2机器狗的Python库,提供了简单易用的API接口。
8
- 支持运动控制、视频流获取、UI界面等功能。
9
- """
10
-
11
- __version__ = "0.0.7"
12
- __author__ = "ezgo"
13
- __email__ = ""
14
- __license__ = "MIT"
15
-
16
- # 导入主要类
17
- try:
18
- from .go2 import Go2
19
- from .camera import Camera
20
- from .ui import APP
21
- from .go2_camera import Go2Camera
22
- from .go2_vui import Go2VUI
23
- from .eztk import EasyTk
24
- from .ezcamera import Camera as EzCamera
25
- except ImportError as e:
26
- print(f"警告: 无法导入部分模块: {e}")
27
- print("请确保已安装所有依赖包")
28
- Go2 = None
29
- Camera = None
30
- APP = None
31
- Go2Camera = None
32
- Go2VUI = None
33
- EasyTk = None
34
- EzCamera = None
35
-
36
- # 定义公开的API
37
- __all__ = [
38
- "Go2",
39
- "Camera",
40
- "APP",
41
- "Go2Camera",
42
- "Go2VUI",
43
- "EasyTk",
44
- "EzCamera",
45
- "__version__"
46
- ]
47
-
48
- # 依赖检查和提示
49
- def _check_dependencies():
50
- """检查关键依赖是否安装,并给出安装提示"""
51
- missing_deps = []
52
-
53
- try:
54
- import cv2
55
- except ImportError:
56
- missing_deps.append("opencv-python")
57
-
58
- try:
59
- import numpy
60
- except ImportError:
61
- missing_deps.append("numpy")
62
-
63
- try:
64
- from PIL import Image
65
- except ImportError:
66
- missing_deps.append("Pillow")
67
-
68
- try:
69
- import netifaces
70
- except ImportError:
71
- missing_deps.append("netifaces")
72
-
73
- try:
74
- import unitree_sdk2py
75
- except ImportError:
76
- missing_deps.append("unitree-sdk2py")
77
-
78
- if missing_deps:
79
- print("=" * 60)
80
- print("警告: ezgo 缺少以下依赖包:")
81
- for dep in missing_deps:
82
- print(f" - {dep}")
83
- print()
84
- print("请安装缺少的依赖包:")
85
- print(" pip install opencv-python numpy Pillow netifaces")
86
- print(" # unitree-sdk2py 需要从官方源安装")
87
- print("=" * 60)
88
- return False
89
-
90
- return True
91
-
92
- # 在导入时进行依赖检查
93
- _check_dependencies()
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes