Dify 插件安装问题解决指南
问题描述
在 Dify 中安装插件(如 DeepSeek 插件)时,遇到以下错误:
failed to launch plugin: failed to install dependencies: failed to install dependencies: exit status 1常见的具体错误包括:
init process exited due to no activity for 120 seconds- 初始化超时operation timed out- 网络下载超时Failed to download distribution due to network timeout- uv 包管理器超时- 下载大文件(如 tiktoken, pydantic-core)时卡住
根本原因
1. 初始化超时时间太短
Dify 默认的 Python 环境初始化超时只有 120 秒,在网络较慢或安装依赖较多时很容易超时。
2. 国外 PyPI 源访问慢
在中国网络环境下,访问官方 PyPI 源(files.pythonhosted.org)速度很慢,经常超时。
3. Dify v1.14+ 使用 uv 包管理器
从 Dify v1.14 开始,插件系统使用uv替代pip作为包管理器,而uv有自己独立的配置,不读取PIP_MIRROR_URL。
4. uv 默认 HTTP 超时太短
uv 默认的 HTTP 超时只有 30 秒,下载大文件(如 tiktoken)时很容易超时。
完整解决方案
步骤 1: 修改 .env 配置文件
在 Dify 的docker/.env文件中,添加或修改以下配置:
# ------------------------------------------------------------------ # 插件安装优化配置(中国大陆网络环境专用) # ------------------------------------------------------------------ # 1. Python 环境初始化超时(从默认 120 秒改为 1200 秒 = 20 分钟) PLUGIN_PYTHON_ENV_INIT_TIMEOUT=1200 # 2. pip 镜像源配置(兼容旧版本) PIP_MIRROR_URL=https://pypi.tuna.tsinghua.edu.cn/simple # 3. uv 包管理器镜像源(关键!Dify v1.14+ 使用 uv) UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple # 4. uv HTTP 请求超时(从默认 30 秒改为 300 秒 = 5 分钟) UV_HTTP_TIMEOUT=300步骤 2: 重新创建 plugin_daemon 容器
注意:仅仅 restart 是不够的!必须重新创建容器才能使环境变量生效。
cddockerdocker-composeup-d--force-recreate plugin_daemon步骤 3: 验证配置是否生效
# 进入容器检查环境变量dockerexecdocker-plugin_daemon-1bash-c" echo '=== 配置检查 ===' echo PLUGIN_PYTHON_ENV_INIT_TIMEOUT=\$PLUGIN_PYTHON_ENV_INIT_TIMEOUTecho PIP_MIRROR_URL=\$PIP_MIRROR_URLecho UV_INDEX_URL=\$UV_INDEX_URLecho UV_HTTP_TIMEOUT=\$UV_HTTP_TIMEOUT"应该输出:
=== 配置检查 === PLUGIN_PYTHON_ENV_INIT_TIMEOUT=1200 PIP_MIRROR_URL=https://pypi.tuna.tsinghua.edu.cn/simple UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple UV_HTTP_TIMEOUT=300步骤 4: 清理失败的安装缓存(可选)
如果之前有失败的安装,建议清理缓存后重试:
dockerexecdocker-plugin_daemon-1bash-c" rm -rf /app/storage/cwd/langgenius/deepseek-* echo '已清理 DeepSeek 缓存目录' "步骤 5: 重新安装插件
在 Dify 界面中,再次尝试安装插件。
配置对照表
| 环境变量 | 默认值 | 推荐值 | 说明 |
|---|---|---|---|
PLUGIN_PYTHON_ENV_INIT_TIMEOUT | 120 | 1200 | Python 环境初始化超时(秒) |
PIP_MIRROR_URL | (空) | https://pypi.tuna.tsinghua.edu.cn/simple | pip 镜像源 |
UV_INDEX_URL | (空) | https://pypi.tuna.tsinghua.edu.cn/simple | uv 镜像源(关键!) |
UV_HTTP_TIMEOUT | 30 | 300 | uv HTTP 下载超时(秒) |
常用排查命令
查看 plugin_daemon 日志
dockerlogs-fdocker-plugin_daemon-1查看容器内的环境变量
dockerexecdocker-plugin_daemon-1env|grep-E'(PIP|UV|PLUGIN)'测试网络连接
# 测试清华源是否可访问dockerexecdocker-plugin_daemon-1curl-Ihttps://pypi.tuna.tsinghua.edu.cn/simple/手动测试 uv 安装
dockerexecdocker-plugin_daemon-1bash-c" cd /tmp uv pip install tiktoken --dry-run "其他可选的镜像源
如果清华源速度不理想,可以尝试以下镜像源:
| 镜像源 | URL |
|---|---|
| 阿里云 | https://mirrors.aliyun.com/pypi/simple/ |
| 中科大 | https://pypi.mirrors.ustc.edu.cn/simple/ |
| 豆瓣 | https://pypi.douban.com/simple/ |
| 华为云 | https://repo.huaweicloud.com/repository/pypi/simple |
修改方法:将.env中的UV_INDEX_URL和PIP_MIRROR_URL替换为对应 URL,然后重新创建容器。
Docker 资源不足的情况
如果仍然遇到signal: killed错误,可能是 Docker 内存不足:
- 打开 Docker Desktop 设置
- 进入 Resources(资源)
- 增加配置:
- Memory: 至少 4GB(推荐 8GB)
- CPU: 至少 4 核
- Swap: 2GB 以上
总结:快速操作清单
下次部署时,直接按以下步骤操作:
- ✅ 编辑
docker/.env,添加 4 个环境变量(见上方完整配置) - ✅ 执行
docker-compose up -d --force-recreate plugin_daemon重新创建容器 - ✅ 验证配置生效
- ✅ 在 Dify 界面安装插件
记住:修改 .env 后,必须用--force-recreate重新创建容器,单纯 restart 环境变量不会生效!
版本信息
- 适用 Dify 版本: v1.14.0+