# Python SBX
一个用于网络代理管理的Python项目。
## 功能特性
- 支持多种代理协议(VLESS、VMess、Trojan、Hysteria2、TUIC、Reality)
- 自动节点管理和上传
- 支持哪吒面板监控
- Argo隧道支持
- Telegram机器人推送
- 自动保活功能
## 安装
```bash
pip install python-sbx
```
## 使用方法
### 命令行使用
```bash
python-sbx
```
### 环境变量配置
```bash
# 节点上传地址
export UPLOAD_URL="https://your-domain.com"
# 项目URL(用于自动保活)
export PROJECT_URL="https://your-project.com"
# 自动保活开关
export AUTO_ACCESS="true"
# 哪吒面板配置
export NEZHA_SERVER="nz.serv00.net:8008"
export NEZHA_KEY="your-secret-key"
# Argo隧道配置
export ARGO_DOMAIN="your-domain.com"
export ARGO_AUTH="your-auth-token"
# Telegram配置
export CHAT_ID="your-chat-id"
export BOT_TOKEN="your-bot-token"
```
## 开发
```bash
# 克隆项目
git clone https://github.com/yourusername/python-sbx.git
cd python-sbx
# 安装依赖
pip install -r requirements.txt
# 运行项目
python app.py
```
## 发布为PyPI包
### 🎉 包已成功构建!
项目已配置为可发布的PyPI包。构建文件位于 `dist/` 目录:
- `python_sbx-0.1.0.tar.gz` - 源码分发包
- `python_sbx-0.1.0-py3-none-any.whl` - 轮子分发包
### 下一步操作
1. **修改个人信息**:
- 编辑 `setup.py` 中的作者名、邮箱、项目URL
- 编辑 `pyproject.toml` 中的作者信息
- 编辑 `LICENSE` 中的版权信息
2. **发布到PyPI**:
```bash
# 使用自动化脚本(推荐)
python publish.py
# 或手动发布
python -m twine upload dist/*
```
3. **测试安装**:
```bash
pip install python-sbx
python-sbx
```
### 发布前检查清单
- [ ] 修改所有配置文件中的个人信息
- [ ] 确保包名在PyPI上是唯一的
- [ ] 测试包是否能正确构建和安装
- [ ] 先在TestPyPI上测试,再发布到正式PyPI
## 项目文件结构
```
python-sbx/
├── app.py # 主程序文件
├── requirements.txt # 依赖列表
├── setup.py # 包配置(主要)
├── pyproject.toml # 现代包配置
├── MANIFEST.in # 包含文件配置
├── README.md # 项目说明
├── LICENSE # 许可证
├── publish.py # 自动化发布脚本
├── test_build.py # 配置测试脚本
├── PUBLISH_GUIDE.md # 详细发布指南
└── QUICKSTART.md # 快速开始指南
```
## 许可证
MIT License
## 贡献
欢迎提交Issue和Pull Request!
## 相关文档
- [发布指南](PUBLISH_GUIDE.md) - 详细的PyPI发布说明
- [快速开始](QUICKSTART.md) - 5分钟发布指南
Raw data
{
"_id": null,
"home_page": "https://github.com/eooce/Sing-box",
"name": "python-sbx",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "eooce <eooce@oytlook.com>",
"keywords": "proxy, network, management",
"author": "eooce",
"author_email": "eooce <eooce@oytlook.com>",
"download_url": "https://files.pythonhosted.org/packages/96/e1/d1391370b58d885138d20b20b2774de9f4d5a786962e867f416a9e4d1acc/python_sbx-1.0.1.tar.gz",
"platform": null,
"description": "# Python SBX\r\n\r\n\u4e00\u4e2a\u7528\u4e8e\u7f51\u7edc\u4ee3\u7406\u7ba1\u7406\u7684Python\u9879\u76ee\u3002\r\n\r\n## \u529f\u80fd\u7279\u6027\r\n\r\n- \u652f\u6301\u591a\u79cd\u4ee3\u7406\u534f\u8bae\uff08VLESS\u3001VMess\u3001Trojan\u3001Hysteria2\u3001TUIC\u3001Reality\uff09\r\n- \u81ea\u52a8\u8282\u70b9\u7ba1\u7406\u548c\u4e0a\u4f20\r\n- \u652f\u6301\u54ea\u5412\u9762\u677f\u76d1\u63a7\r\n- Argo\u96a7\u9053\u652f\u6301\r\n- Telegram\u673a\u5668\u4eba\u63a8\u9001\r\n- \u81ea\u52a8\u4fdd\u6d3b\u529f\u80fd\r\n\r\n## \u5b89\u88c5\r\n\r\n```bash\r\npip install python-sbx\r\n```\r\n\r\n## \u4f7f\u7528\u65b9\u6cd5\r\n\r\n### \u547d\u4ee4\u884c\u4f7f\u7528\r\n\r\n```bash\r\npython-sbx\r\n```\r\n\r\n### \u73af\u5883\u53d8\u91cf\u914d\u7f6e\r\n\r\n```bash\r\n# \u8282\u70b9\u4e0a\u4f20\u5730\u5740\r\nexport UPLOAD_URL=\"https://your-domain.com\"\r\n\r\n# \u9879\u76eeURL\uff08\u7528\u4e8e\u81ea\u52a8\u4fdd\u6d3b\uff09\r\nexport PROJECT_URL=\"https://your-project.com\"\r\n\r\n# \u81ea\u52a8\u4fdd\u6d3b\u5f00\u5173\r\nexport AUTO_ACCESS=\"true\"\r\n\r\n# \u54ea\u5412\u9762\u677f\u914d\u7f6e\r\nexport NEZHA_SERVER=\"nz.serv00.net:8008\"\r\nexport NEZHA_KEY=\"your-secret-key\"\r\n\r\n# Argo\u96a7\u9053\u914d\u7f6e\r\nexport ARGO_DOMAIN=\"your-domain.com\"\r\nexport ARGO_AUTH=\"your-auth-token\"\r\n\r\n# Telegram\u914d\u7f6e\r\nexport CHAT_ID=\"your-chat-id\"\r\nexport BOT_TOKEN=\"your-bot-token\"\r\n```\r\n\r\n## \u5f00\u53d1\r\n\r\n```bash\r\n# \u514b\u9686\u9879\u76ee\r\ngit clone https://github.com/yourusername/python-sbx.git\r\ncd python-sbx\r\n\r\n# \u5b89\u88c5\u4f9d\u8d56\r\npip install -r requirements.txt\r\n\r\n# \u8fd0\u884c\u9879\u76ee\r\npython app.py\r\n```\r\n\r\n## \u53d1\u5e03\u4e3aPyPI\u5305\r\n\r\n### \ud83c\udf89 \u5305\u5df2\u6210\u529f\u6784\u5efa\uff01\r\n\r\n\u9879\u76ee\u5df2\u914d\u7f6e\u4e3a\u53ef\u53d1\u5e03\u7684PyPI\u5305\u3002\u6784\u5efa\u6587\u4ef6\u4f4d\u4e8e `dist/` \u76ee\u5f55\uff1a\r\n\r\n- `python_sbx-0.1.0.tar.gz` - \u6e90\u7801\u5206\u53d1\u5305\r\n- `python_sbx-0.1.0-py3-none-any.whl` - \u8f6e\u5b50\u5206\u53d1\u5305\r\n\r\n### \u4e0b\u4e00\u6b65\u64cd\u4f5c\r\n\r\n1. **\u4fee\u6539\u4e2a\u4eba\u4fe1\u606f**\uff1a\r\n - \u7f16\u8f91 `setup.py` \u4e2d\u7684\u4f5c\u8005\u540d\u3001\u90ae\u7bb1\u3001\u9879\u76eeURL\r\n - \u7f16\u8f91 `pyproject.toml` \u4e2d\u7684\u4f5c\u8005\u4fe1\u606f\r\n - \u7f16\u8f91 `LICENSE` \u4e2d\u7684\u7248\u6743\u4fe1\u606f\r\n\r\n2. **\u53d1\u5e03\u5230PyPI**\uff1a\r\n ```bash\r\n # \u4f7f\u7528\u81ea\u52a8\u5316\u811a\u672c\uff08\u63a8\u8350\uff09\r\n python publish.py\r\n \r\n # \u6216\u624b\u52a8\u53d1\u5e03\r\n python -m twine upload dist/*\r\n ```\r\n\r\n3. **\u6d4b\u8bd5\u5b89\u88c5**\uff1a\r\n ```bash\r\n pip install python-sbx\r\n python-sbx\r\n ```\r\n\r\n### \u53d1\u5e03\u524d\u68c0\u67e5\u6e05\u5355\r\n\r\n- [ ] \u4fee\u6539\u6240\u6709\u914d\u7f6e\u6587\u4ef6\u4e2d\u7684\u4e2a\u4eba\u4fe1\u606f\r\n- [ ] \u786e\u4fdd\u5305\u540d\u5728PyPI\u4e0a\u662f\u552f\u4e00\u7684\r\n- [ ] \u6d4b\u8bd5\u5305\u662f\u5426\u80fd\u6b63\u786e\u6784\u5efa\u548c\u5b89\u88c5\r\n- [ ] \u5148\u5728TestPyPI\u4e0a\u6d4b\u8bd5\uff0c\u518d\u53d1\u5e03\u5230\u6b63\u5f0fPyPI\r\n\r\n## \u9879\u76ee\u6587\u4ef6\u7ed3\u6784\r\n\r\n```\r\npython-sbx/\r\n\u251c\u2500\u2500 app.py # \u4e3b\u7a0b\u5e8f\u6587\u4ef6\r\n\u251c\u2500\u2500 requirements.txt # \u4f9d\u8d56\u5217\u8868\r\n\u251c\u2500\u2500 setup.py # \u5305\u914d\u7f6e\uff08\u4e3b\u8981\uff09\r\n\u251c\u2500\u2500 pyproject.toml # \u73b0\u4ee3\u5305\u914d\u7f6e\r\n\u251c\u2500\u2500 MANIFEST.in # \u5305\u542b\u6587\u4ef6\u914d\u7f6e\r\n\u251c\u2500\u2500 README.md # \u9879\u76ee\u8bf4\u660e\r\n\u251c\u2500\u2500 LICENSE # \u8bb8\u53ef\u8bc1\r\n\u251c\u2500\u2500 publish.py # \u81ea\u52a8\u5316\u53d1\u5e03\u811a\u672c\r\n\u251c\u2500\u2500 test_build.py # \u914d\u7f6e\u6d4b\u8bd5\u811a\u672c\r\n\u251c\u2500\u2500 PUBLISH_GUIDE.md # \u8be6\u7ec6\u53d1\u5e03\u6307\u5357\r\n\u2514\u2500\u2500 QUICKSTART.md # \u5feb\u901f\u5f00\u59cb\u6307\u5357\r\n```\r\n\r\n## \u8bb8\u53ef\u8bc1\r\n\r\nMIT License\r\n\r\n## \u8d21\u732e\r\n\r\n\u6b22\u8fce\u63d0\u4ea4Issue\u548cPull Request\uff01\r\n\r\n## \u76f8\u5173\u6587\u6863\r\n\r\n- [\u53d1\u5e03\u6307\u5357](PUBLISH_GUIDE.md) - \u8be6\u7ec6\u7684PyPI\u53d1\u5e03\u8bf4\u660e\r\n- [\u5feb\u901f\u5f00\u59cb](QUICKSTART.md) - 5\u5206\u949f\u53d1\u5e03\u6307\u5357\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Python project for network proxy management",
"version": "1.0.1",
"project_urls": {
"Documentation": "https://github.com/eooce/sing-box#readme",
"Homepage": "https://github.com/eooce/sing-box",
"Issues": "https://github.com/eooce/sing-box/issues",
"Repository": "https://github.com/eooce/sing-box/python"
},
"split_keywords": [
"proxy",
" network",
" management"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "f6e0cf30a05849d38ff627b4d8c06822b870512835a9b929893f03b92c430220",
"md5": "e436ab0be2c0934c9ffcc9777cab2656",
"sha256": "d5f9065b3dd4d572aec6d61c5acefa39479401d3a3a8bc85c06b9045efb25d6a"
},
"downloads": -1,
"filename": "python_sbx-1.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e436ab0be2c0934c9ffcc9777cab2656",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 20531,
"upload_time": "2025-08-13T17:19:43",
"upload_time_iso_8601": "2025-08-13T17:19:43.256492Z",
"url": "https://files.pythonhosted.org/packages/f6/e0/cf30a05849d38ff627b4d8c06822b870512835a9b929893f03b92c430220/python_sbx-1.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "96e1d1391370b58d885138d20b20b2774de9f4d5a786962e867f416a9e4d1acc",
"md5": "a620846f8204d6becd13c8d8600a83c7",
"sha256": "23ad1cc21e3a05b117b8b8b09b8542822d2dc18f3210445b3f31493ab635956e"
},
"downloads": -1,
"filename": "python_sbx-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "a620846f8204d6becd13c8d8600a83c7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 46750,
"upload_time": "2025-08-13T17:19:44",
"upload_time_iso_8601": "2025-08-13T17:19:44.952048Z",
"url": "https://files.pythonhosted.org/packages/96/e1/d1391370b58d885138d20b20b2774de9f4d5a786962e867f416a9e4d1acc/python_sbx-1.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-13 17:19:44",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "eooce",
"github_project": "Sing-box",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "python-sbx"
}