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

使用Pants构建Django时出现ModuleNotFoundError问题求助

解决Pantsbuild中Django项目的django-filter/django-cors-headers模块找不到问题

问题出在Pantsbuild的依赖管理机制——它不会自动识别你本地安装的Python包,必须显式在BUILD文件中声明所有依赖,才能让Pants将这些包打包到运行环境的PEX文件里。DRF能正常工作大概率是因为它被某个已声明的依赖间接引入了,但django-filter和django-cors-headers需要你手动添加依赖声明。

修改你的BUILD文件如下:

python_requirement(
    name="django",
    requirements=["django==4.1.1"],
)

# 添加django-filter的依赖声明
python_requirement(
    name="django-filter",
    requirements=["django-filter==23.3"],  # 替换为你实际使用的版本
)

# 添加django-cors-headers的依赖声明
python_requirement(
    name="django-cors-headers",
    requirements=["django-cors-headers==4.2.0"],  # 替换为你实际使用的版本
)

python_sources(
    name="lib",
    dependencies=[
        ":django",
        ":django-filter",  # 新增依赖
        ":django-cors-headers",  # 新增依赖
        "//src/jango/jango",
    ],
)

pex_binary(
    name="manage",
    entry_point="manage.py",
    restartable=True,
)

关键说明:

  • 每个第三方Python包都需要通过python_requirement目标声明版本
  • 必须将声明好的依赖添加到对应的python_sources或pex_binary的dependencies列表中,确保Pants构建时包含这些包
  • 如果你不确定依赖的具体版本,可以查看你的requirements.txt(如果有的话),或者直接运行pip show django-filter获取版本号

修改完成后,重新执行./pants run src/jango:manage -- runserver即可解决模块找不到的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 17:20:36