繁体   English   中英

在 Django proyect 中没有名为...的模块

[英]No module named... in Django proyect

我有一个非常标准的 Django 项目,我找不到从 /middleware/utils/request.py 导入 /middleware/utils/compare.py 的方法

这是项目树:

|--middleware/
|  |--utils/
|  |  |--compare.py
|  |  |--request.py
|  |--__init__.py
|  |--asgi.py
|  |--settings.py
|  |--urls.py
|  |--views.py
|  |--wsgi.py
|--manage.py

其中__init__.pyasgi.pysettings.pyurls.pywsgi.py没有大的修改。 __init__.py是空的)

# middleware/views.py
from .utils.request import requests # This line works fine
# middleware/utils/request.py
from compare import compare # ModuleNotFoundError: No module named 'compare'
from .compare import compare # Attempted relative import beyond top-level package pylint(relative-beyond-top-level)
# ^^^ This line absolutly breaks my code, but it runs
from utils.compare import compare # ModuleNotFoundError: No module named 'utils'
from .utils.compare import compare # ModuleNotFoundError: No module named 'middleware.utils.utils'

注意: compare.py有一个名为 function 的compare ,我也尝试重命名它但遇到了同样的问题。

这可能很明显,但我使用python manage.py runserver运行项目

只需在utils文件夹中添加空的__init__.py即可。

并在这里阅读更多相关信息:

https://docs.python.org/3/tutorial/modules.html#packages

像这样更改文件树,

|--middleware/
|  |--utils/
|  |--|__init__.py # Added this file
|  |  |--compare.py
|  |  |--request.py
|  |--__init__.py
|  |--asgi.py
|  |--settings.py
|  |--urls.py
|  |--views.py
|  |--wsgi.py
|--manage.py

像这样导入,

from utils.compare import compare 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM