yhd-depchecker


Nameyhd-depchecker JSON
Version 1.0.0 PyPI version JSON
download
home_pageNone
Summary用于检测当前代码环境是否拥有开发者所要求的库,并安装。可用于直接分发代码快捷安装
upload_time2025-09-06 12:32:18
maintainerNone
docs_urlNone
authorYHD gamepaly(颜华蝶游戏社)
requires_python>=3.8
licenseNone
keywords dependency checker installer package management environment
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # DepChecker

一个轻量级的Python库,用于快速检测和安装项目所需的依赖包。

## 功能特性

- ✅ **依赖检测** - 检查包是否安装及版本是否符合要求
- 🔧 **自动安装** - 一键安装所有缺失或需要更新的包
- 📊 **详细报告** - 清晰的检查结果和状态显示
- 🚀 **简单易用** - 提供类接口和便捷函数两种使用方式
- 🔄 **版本控制** - 支持最低版本要求检查

## 安装

```bash
pip install depchecker
```

## 快速开始

### 方式一:使用便捷函数

```python
from depchecker import quick_check

# 定义项目依赖
REQUIREMENTS = {
    "requests": "2.31.0",
    "numpy": "1.21.0", 
    "pandas": "1.3.0",
    "matplotlib": "3.4.0"
}

# 快速检查并自动安装
ready = quick_check(REQUIREMENTS, auto_install=True, verbose=True)

if ready:
    print("✅ 环境准备就绪!")
else:
    print("❌ 环境准备失败")
```

### 方式二:使用类接口

```python
from depchecker import DependencyChecker

# 创建检测器实例
checker = DependencyChecker({
    "flask": "2.0.0",
    "sqlalchemy": "1.4.0",
    "redis": "4.0.0"
})

# 检查所有依赖
results = checker.check_all()
print("检查结果:", results)

# 安装缺失的包
if not checker.is_ready():
    checker.install_all(verbose=True)
```

## API 参考

### `DependencyChecker` 类

#### `__init__(requirements: Dict[str, str])`
初始化依赖检测器。

- `requirements`: 依赖包字典,格式为 `{包名: 最低版本}`

#### `check_package(package_name: str, min_version: Optional[str] = None) -> Tuple[bool, str, str]`
检查单个包的安装状态。

- 返回: `(是否安装, 当前版本, 状态信息)`

#### `check_all() -> Dict[str, Tuple[bool, str, str]]`
检查所有要求的依赖包。

- 返回: 字典格式的检查结果 `{包名: (是否安装, 版本, 状态)}`

#### `install_all(verbose: bool = False) -> Dict[str, bool]`
安装所有缺失和需要更新的包。

- 返回: 安装结果字典 `{包名: 是否成功}`

#### `is_ready() -> bool`
检查所有依赖是否都已满足。

### `quick_check(requirements: Dict[str, str], auto_install: bool = False, verbose: bool = False) -> bool`
快速检查依赖的便捷函数。

- `auto_install`: 是否自动安装缺失的包
- `verbose`: 是否显示详细输出
- 返回: 所有依赖是否就绪

## 示例输出

```
📦 依赖库检查:
--------------------------------------------------
requests      2.28.0       ✓ (需要: 2.31.0+)
numpy         1.20.0       ✗ 需要版本 >= 1.21.0 (需要: 1.21.0+)
pandas        未安装       ✗ (需要: 1.3.0+)
--------------------------------------------------
🔧 自动安装缺失的库...
安装 numpy>=1.21.0...
✓ numpy 安装成功
安装 pandas>=1.3.0...
✓ pandas 安装成功
🎉 所有依赖库安装完成!
✅ 环境准备就绪,可以开始开发!
```

## 贡献

欢迎提交 Issue 和 Pull Request!

## 许可证

MIT License

## 支持版本

- Python 3.7+
- 支持 Windows、macOS、Linux

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "yhd-depchecker",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "dependency, checker, installer, package management, environment",
    "author": "YHD gamepaly\uff08\u989c\u534e\u8776\u6e38\u620f\u793e\uff09",
    "author_email": "f17376088816@163.com",
    "download_url": "https://files.pythonhosted.org/packages/21/95/0554b54cf5eef9b3a76bf3642f774a930ed67d6f619ba1b5e55913f8388d/yhd_depchecker-1.0.0.tar.gz",
    "platform": null,
    "description": "# DepChecker\r\n\r\n\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u7684Python\u5e93\uff0c\u7528\u4e8e\u5feb\u901f\u68c0\u6d4b\u548c\u5b89\u88c5\u9879\u76ee\u6240\u9700\u7684\u4f9d\u8d56\u5305\u3002\r\n\r\n## \u529f\u80fd\u7279\u6027\r\n\r\n- \u2705 **\u4f9d\u8d56\u68c0\u6d4b** - \u68c0\u67e5\u5305\u662f\u5426\u5b89\u88c5\u53ca\u7248\u672c\u662f\u5426\u7b26\u5408\u8981\u6c42\r\n- \ud83d\udd27 **\u81ea\u52a8\u5b89\u88c5** - \u4e00\u952e\u5b89\u88c5\u6240\u6709\u7f3a\u5931\u6216\u9700\u8981\u66f4\u65b0\u7684\u5305\r\n- \ud83d\udcca **\u8be6\u7ec6\u62a5\u544a** - \u6e05\u6670\u7684\u68c0\u67e5\u7ed3\u679c\u548c\u72b6\u6001\u663e\u793a\r\n- \ud83d\ude80 **\u7b80\u5355\u6613\u7528** - \u63d0\u4f9b\u7c7b\u63a5\u53e3\u548c\u4fbf\u6377\u51fd\u6570\u4e24\u79cd\u4f7f\u7528\u65b9\u5f0f\r\n- \ud83d\udd04 **\u7248\u672c\u63a7\u5236** - \u652f\u6301\u6700\u4f4e\u7248\u672c\u8981\u6c42\u68c0\u67e5\r\n\r\n## \u5b89\u88c5\r\n\r\n```bash\r\npip install depchecker\r\n```\r\n\r\n## \u5feb\u901f\u5f00\u59cb\r\n\r\n### \u65b9\u5f0f\u4e00\uff1a\u4f7f\u7528\u4fbf\u6377\u51fd\u6570\r\n\r\n```python\r\nfrom depchecker import quick_check\r\n\r\n# \u5b9a\u4e49\u9879\u76ee\u4f9d\u8d56\r\nREQUIREMENTS = {\r\n    \"requests\": \"2.31.0\",\r\n    \"numpy\": \"1.21.0\", \r\n    \"pandas\": \"1.3.0\",\r\n    \"matplotlib\": \"3.4.0\"\r\n}\r\n\r\n# \u5feb\u901f\u68c0\u67e5\u5e76\u81ea\u52a8\u5b89\u88c5\r\nready = quick_check(REQUIREMENTS, auto_install=True, verbose=True)\r\n\r\nif ready:\r\n    print(\"\u2705 \u73af\u5883\u51c6\u5907\u5c31\u7eea\uff01\")\r\nelse:\r\n    print(\"\u274c \u73af\u5883\u51c6\u5907\u5931\u8d25\")\r\n```\r\n\r\n### \u65b9\u5f0f\u4e8c\uff1a\u4f7f\u7528\u7c7b\u63a5\u53e3\r\n\r\n```python\r\nfrom depchecker import DependencyChecker\r\n\r\n# \u521b\u5efa\u68c0\u6d4b\u5668\u5b9e\u4f8b\r\nchecker = DependencyChecker({\r\n    \"flask\": \"2.0.0\",\r\n    \"sqlalchemy\": \"1.4.0\",\r\n    \"redis\": \"4.0.0\"\r\n})\r\n\r\n# \u68c0\u67e5\u6240\u6709\u4f9d\u8d56\r\nresults = checker.check_all()\r\nprint(\"\u68c0\u67e5\u7ed3\u679c:\", results)\r\n\r\n# \u5b89\u88c5\u7f3a\u5931\u7684\u5305\r\nif not checker.is_ready():\r\n    checker.install_all(verbose=True)\r\n```\r\n\r\n## API \u53c2\u8003\r\n\r\n### `DependencyChecker` \u7c7b\r\n\r\n#### `__init__(requirements: Dict[str, str])`\r\n\u521d\u59cb\u5316\u4f9d\u8d56\u68c0\u6d4b\u5668\u3002\r\n\r\n- `requirements`: \u4f9d\u8d56\u5305\u5b57\u5178\uff0c\u683c\u5f0f\u4e3a `{\u5305\u540d: \u6700\u4f4e\u7248\u672c}`\r\n\r\n#### `check_package(package_name: str, min_version: Optional[str] = None) -> Tuple[bool, str, str]`\r\n\u68c0\u67e5\u5355\u4e2a\u5305\u7684\u5b89\u88c5\u72b6\u6001\u3002\r\n\r\n- \u8fd4\u56de: `(\u662f\u5426\u5b89\u88c5, \u5f53\u524d\u7248\u672c, \u72b6\u6001\u4fe1\u606f)`\r\n\r\n#### `check_all() -> Dict[str, Tuple[bool, str, str]]`\r\n\u68c0\u67e5\u6240\u6709\u8981\u6c42\u7684\u4f9d\u8d56\u5305\u3002\r\n\r\n- \u8fd4\u56de: \u5b57\u5178\u683c\u5f0f\u7684\u68c0\u67e5\u7ed3\u679c `{\u5305\u540d: (\u662f\u5426\u5b89\u88c5, \u7248\u672c, \u72b6\u6001)}`\r\n\r\n#### `install_all(verbose: bool = False) -> Dict[str, bool]`\r\n\u5b89\u88c5\u6240\u6709\u7f3a\u5931\u548c\u9700\u8981\u66f4\u65b0\u7684\u5305\u3002\r\n\r\n- \u8fd4\u56de: \u5b89\u88c5\u7ed3\u679c\u5b57\u5178 `{\u5305\u540d: \u662f\u5426\u6210\u529f}`\r\n\r\n#### `is_ready() -> bool`\r\n\u68c0\u67e5\u6240\u6709\u4f9d\u8d56\u662f\u5426\u90fd\u5df2\u6ee1\u8db3\u3002\r\n\r\n### `quick_check(requirements: Dict[str, str], auto_install: bool = False, verbose: bool = False) -> bool`\r\n\u5feb\u901f\u68c0\u67e5\u4f9d\u8d56\u7684\u4fbf\u6377\u51fd\u6570\u3002\r\n\r\n- `auto_install`: \u662f\u5426\u81ea\u52a8\u5b89\u88c5\u7f3a\u5931\u7684\u5305\r\n- `verbose`: \u662f\u5426\u663e\u793a\u8be6\u7ec6\u8f93\u51fa\r\n- \u8fd4\u56de: \u6240\u6709\u4f9d\u8d56\u662f\u5426\u5c31\u7eea\r\n\r\n## \u793a\u4f8b\u8f93\u51fa\r\n\r\n```\r\n\ud83d\udce6 \u4f9d\u8d56\u5e93\u68c0\u67e5:\r\n--------------------------------------------------\r\nrequests      2.28.0       \u2713 (\u9700\u8981: 2.31.0+)\r\nnumpy         1.20.0       \u2717 \u9700\u8981\u7248\u672c >= 1.21.0 (\u9700\u8981: 1.21.0+)\r\npandas        \u672a\u5b89\u88c5       \u2717 (\u9700\u8981: 1.3.0+)\r\n--------------------------------------------------\r\n\ud83d\udd27 \u81ea\u52a8\u5b89\u88c5\u7f3a\u5931\u7684\u5e93...\r\n\u5b89\u88c5 numpy>=1.21.0...\r\n\u2713 numpy \u5b89\u88c5\u6210\u529f\r\n\u5b89\u88c5 pandas>=1.3.0...\r\n\u2713 pandas \u5b89\u88c5\u6210\u529f\r\n\ud83c\udf89 \u6240\u6709\u4f9d\u8d56\u5e93\u5b89\u88c5\u5b8c\u6210\uff01\r\n\u2705 \u73af\u5883\u51c6\u5907\u5c31\u7eea\uff0c\u53ef\u4ee5\u5f00\u59cb\u5f00\u53d1\uff01\r\n```\r\n\r\n## \u8d21\u732e\r\n\r\n\u6b22\u8fce\u63d0\u4ea4 Issue \u548c Pull Request\uff01\r\n\r\n## \u8bb8\u53ef\u8bc1\r\n\r\nMIT License\r\n\r\n## \u652f\u6301\u7248\u672c\r\n\r\n- Python 3.7+\r\n- \u652f\u6301 Windows\u3001macOS\u3001Linux\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "\u7528\u4e8e\u68c0\u6d4b\u5f53\u524d\u4ee3\u7801\u73af\u5883\u662f\u5426\u62e5\u6709\u5f00\u53d1\u8005\u6240\u8981\u6c42\u7684\u5e93\uff0c\u5e76\u5b89\u88c5\u3002\u53ef\u7528\u4e8e\u76f4\u63a5\u5206\u53d1\u4ee3\u7801\u5feb\u6377\u5b89\u88c5",
    "version": "1.0.0",
    "project_urls": null,
    "split_keywords": [
        "dependency",
        " checker",
        " installer",
        " package management",
        " environment"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c38a2ed137d6b4dbf0bb99385e26bb63846a9e04a75384fb1064c78f638dbbd4",
                "md5": "816c717ba301fce81e1841bca750e4de",
                "sha256": "22f2a706d5bb458e62e78aa0a1bb558861df0df5832ea9d846c3f26fb7c6c88b"
            },
            "downloads": -1,
            "filename": "yhd_depchecker-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "816c717ba301fce81e1841bca750e4de",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 2908,
            "upload_time": "2025-09-06T12:32:16",
            "upload_time_iso_8601": "2025-09-06T12:32:16.475686Z",
            "url": "https://files.pythonhosted.org/packages/c3/8a/2ed137d6b4dbf0bb99385e26bb63846a9e04a75384fb1064c78f638dbbd4/yhd_depchecker-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "21950554b54cf5eef9b3a76bf3642f774a930ed67d6f619ba1b5e55913f8388d",
                "md5": "70b5f459298d0c416ccdbd39934d45b4",
                "sha256": "d6e57a0d43c7ce2dc070b3e0bb6e035238dc0b8398ce60d3db070c96ab113d0b"
            },
            "downloads": -1,
            "filename": "yhd_depchecker-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "70b5f459298d0c416ccdbd39934d45b4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 4148,
            "upload_time": "2025-09-06T12:32:18",
            "upload_time_iso_8601": "2025-09-06T12:32:18.062392Z",
            "url": "https://files.pythonhosted.org/packages/21/95/0554b54cf5eef9b3a76bf3642f774a930ed67d6f619ba1b5e55913f8388d/yhd_depchecker-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-06 12:32:18",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "yhd-depchecker"
}
        
Elapsed time: 0.52087s