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

使用Pants运行Django项目遭遇ModuleNotFoundError求助

Django项目Pants构建配置问题

项目目录结构

a/b/c/d/
├── e
│   ├── BUILD.pants
│   ├── myapp
│   │   ├── BUILD.pants
│   │   ├── migrations
│   │   ├── models.py
│   │   ├── ...
│   │   └── tests
│   ├── BUILD.pants
│   ├── settings.py
│   ├── ...
│   └── wsgi.py
├── BUILD.pants
├── ...
└── manage.py

问题背景

项目直接执行manage.py runserver可正常运行,但因使用相对导入导致Pants和Pyright报错,切换为绝对导入后,直接运行Django失效。通过Pants启动服务时出现模块找不到的错误。

当前配置

a/b/c/d目录下的BUILD.pants内容:

python_sources()

pex_binary(
    name="manage",
    entry_point="manage.py",
    dependencies=["a/b/c/d/e"],
    restartable=True,
)

报错情况

执行命令 ./pants run a/b/c/d:manage -- runserver --noreload 时,触发错误:

ModuleNotFoundError: No module named 'd'

manage.py中关键配置代码:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'b.c.d.e.settings')

注:仓库内所有绝对导入均基于b目录,但文件实际存储在a/b路径下。修改该导入路径仅会更换报错的模块名称,问题本质未解决。

已尝试操作

  • 参考服务型架构的示例仓库调整配置,无效
  • 添加--noreload参数,无效
  • 调整构建文件后,执行./pants dependencies显示依赖关系正确

本人完全不熟悉Pants,不清楚如何正确配置pex_binary()和python_sources(),恳请指导。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 19:52:11