n8n 安装 Python 库
n8n安装python库
1.创建dockerfile
# 使用官方 n8n 镜像作为基础镜像(默认基于 node + alpine 的轻量级系统)
FROM n8nio/n8n:latest
# 切换到 root 用户,以便安装系统级依赖(n8n 默认是 node 用户)
USER root
# 更新系统包索引并安装 Python 相关工具:
# - python3:Python 语言环境
# - py3-pip:Python 包管理器 pip
# - py3-virtualenv:用于创建 Python 虚拟环境
# - ln -sf:建立符号链接,使 python 命令等于 python3
RUN apk update && \
apk add --no-cache python3 py3-pip py3-virtualenv && \
ln -sf python3 /usr/bin/python
# 创建一个 Python 虚拟环境,路径设在 /home/node/venv
# 激活虚拟环境并安装指定的 Python 包(比如 youtube-transcript-api)
# 使用 --no-cache-dir 避免 pip 缓存文件占用空间
RUN python3 -m venv /home/node/venv && \
. /home/node/venv/bin/activate && \
pip install --no-cache-dir youtube-transcript-api
# 把虚拟环境的 bin 目录加入 PATH
# 这样 node 用户执行 Python 脚本时也能使用虚拟环境里的 Python 和 pip
ENV PATH="/home/node/venv/bin:$PATH"
# 切换回 node 用户,以确保 n8n 后续运行在安全的非 root 权限下
USER node
2.修改docker-compose.yml内容。
services:
n8n_FZ3z:
# 使用自定义构建的镜像(基于 Dockerfile),而不是直接拉取官方镜像
# 如果取消注释下行 image,会使用官方镜像版本,如 n8nio/n8n:1.44.0
#image: n8nio/n8n:${VERSION}
# 使用当前目录下的 Dockerfile 构建镜像,适用于需要安装 Python、字体等额外依赖的情况
build:
context: . # 构建上下文目录,表示 Dockerfile 在当前目录下
deploy:
resources:
limits:
cpus: ${CPUS}
memory: ${MEMORY_LIMIT}
restart: always
ports:
- ${HOST_IP}:${WEB_HTTP_PORT}:5678
volumes:
- ${APP_PATH}/data:/home/node/.n8n
- ${APP_PATH}/n8n/backup:/backup
- ${APP_PATH}/shared:/data/shared
- /usr/share/fonts/truetype/:/usr/share/fonts/truetype/host/
- ${APP_PATH}/python_scripts:/home/node/python_scripts # 挂载Python脚本目录
environment:
N8N_SECURE_COOKIE: false
WEBHOOK_URL: https://xxx.com/
labels:
createdBy: "bt_apps"
networks:
- baota_net
networks:
baota_net:
external: true
3.修改了 Dockerfile 或 build: 配置后,必须重新构建镜像
docker-compose up -d --build
说明: • --build:强制重新构建镜像(不使用缓存)。 • -d:后台运行容器。
4.使用Execute Command
节点测试。执行成功。