首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用Pants构建Django时,它会引发"ModuleNotFoundError: No模块名“

当使用Pants构建Django时,它会引发"ModuleNotFoundError: No模块名“
EN

Stack Overflow用户
提问于 2022-09-12 07:20:50
回答 1查看 77关注 0票数 0

我为我们的Django项目配置了Pantsbuild,一切都很顺利。这是我的BUILD文件:

代码语言:javascript
复制
python_requirement(
    name="django",
    requirements=["django==4.1.1"],
)


python_sources(
    name="lib",
    dependencies=[
        ":django",
        "//src/jango/jango",
    ],
)

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

但是,当我添加django-filter并使用以下命令运行代码时:

代码语言:javascript
复制
./pants run src/jango:manage -- runserver

我遇到了一个错误:

代码语言:javascript
复制
Traceback (most recent call last):
    File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
    File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
    File "/home/xurvan/monorepo/src/jango/manage.py", line 8, in <module>
    import django_filters
ModuleNotFoundError: No module named 'django_filters'

我还安装了Django Rest框架,它运行良好。但我对django-cors-headers也有同样的问题。我不明白有什么区别。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-25 08:13:49

我无法理解奇怪行为背后的原因,但我们所需要做的就是禁用Django自动加载程序。正如Pantsbuild官方小组在他们的Github中所写的那样

使用runserver,我们关闭Django的自动重新加载器,因为我们依赖于Pants自己的文件监视,方法是在pex_binary目标上设置manage.py

因此,使用以下命令运行代码解决了我的问题:

代码语言:javascript
复制
./pants run src/jango:manage -- runserver --noreload
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73685724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档