You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PyCharm中配置debugpy附加调试本地Docker容器内代码

PyCharm 附加调试Docker内Python代码配置方案(对应VSCode Debugpy Attach模式)

基于你已有的VSCode配置,以下是PyCharm的等价配置方案,解决端口占用和.env加载问题:

一、核心配置:直接附加到容器内的Debugpy服务

这个方案和你VSCode的逻辑完全一致,无需使用远程解释器,避免卡顿和.env问题。

1. 确认容器内Debugpy状态

确保容器内的Python进程已通过Debugpy监听端口(你VSCode能正常调试说明此步骤已完成),启动命令类似:

# 以Odoo为例,在启动命令中加入Debugpy参数
python -m debugpy --listen 0.0.0.0:8888 --wait-for-client odoo-bin -c /path/to/config.conf

注意:必须监听0.0.0.0而非127.0.0.1,否则宿主无法访问容器内的Debugpy服务。

2. 创建PyCharm调试配置

  • 打开PyCharm,点击右上角运行配置下拉框 → Edit Configurations...
  • 点击左上角「+」,选择 Python Debug Server(PyCharm 2023+ 可选更适配的Debugpy Attach)
  • 填写配置项:
    • Name:自定义(如「Attach Docker Odoo」)
    • Host:localhost(若容器8888端口已映射到宿主);若用Docker内部网络,填容器IP(通过docker inspect <容器ID/名称> | grep IPAddress获取)
    • Port:8888(与VSCode中debugServer参数一致)
    • Path Mappings:完全照搬VSCode的pathMappings,逐条添加:
      本地路径(Local Path)远程路径(Remote Path)
      /path/to/folder/Odoo-Dev/syscoon/agora/internal_addons/mnt/odoo/internal_addons
      /path/to/folder/Odoo-Dev/syscoon/agora/external_addons/mnt/odoo/external_addons
      /path/to/folder/Odoo-Dev/syscoon/agora//mnt/odoo/syscoon_addons
      /path/to/folder/Odoo-Dev/odoo-sync/addons/usr/lib/python3/dist-packages/odoo/addons
      /path/to/folder/Odoo-Dev/enterprise/mnt/odoo-enterprise
    • 勾选 Allow parallel run(避免端口占用误报,PyCharm仅连接端口而非占用)
    • 关闭 Just My Code(对应VSCode的justMyCode: false)
    • 可选:勾选 Log to file 保存调试日志,方便排查问题

3. 解决端口占用问题

你遇到的端口占用错误通常是以下原因:

  • 宿主8888端口被其他进程占用:用lsof -i :8888(Mac/Linux)或netstat -ano | findstr :8888(Windows)检查,杀掉占用进程,或修改容器端口映射(如容器8888→宿主8889,PyCharm配置中Port改为8889)
  • 误将PyCharm的调试服务端口设为8888:确保配置中是连接容器的8888端口,而非PyCharm自身监听8888

4. 加载Docker的.env文件

  • 若可复制容器内的.env文件到本地:将容器内的.env(如/mnt/odoo/.env)复制到本地项目根目录,在调试配置的Environment variables中点击「...」→ Load from file,选择本地.env文件
  • 若无法复制:在Environment variables中手动添加.env内的关键变量(如ODOO_DB、ODOO_ADMIN_PASSWORD等)

二、备选:优化远程Python解释器(解决卡顿和.env问题)

若坚持使用远程解释器,可调整以下配置:

  • 加速同步:打开Settings → Project: <你的项目> → Python Interpreter,找到远程解释器配置,关闭Synchronize files automatically,改为手动同步(右键项目→Deployment → Sync with Deployed to...),仅同步必要的addons目录
  • 加载.env:在远程解释器配置的Environment variables中,点击「...」→ Load from file,选择容器内的.env文件路径(如/mnt/odoo/.env)

内容的提问来源于stack exchange,提问作者MauriceXD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 23:34:53