如何导入已导入的相同文件名的Python模块?

8 投票
2 回答
3694 浏览
提问于 2025-04-16 11:26

我在使用Python模块导入的时候遇到了问题。我安装了Django(其实这可以是任何其他模块)。我在我的应用程序里有一个叫“utilities”的文件夹。在这个文件夹里,我创建了一个文件“django.py”,这个文件里包含了一些用来处理Django的函数。

所以我在我的模块里导入Django,但出现了错误:

from django.template import Context
# other imports
# use Context

错误信息是:在“...\utilities\django.py”的第一行,出现了这样的提示:从django.template导入Context时出错,提示没有名为template的模块。

2 个回答

1

使用命名空间,在你的工具目录里创建一个 __init__.py 文件,这样它就变成了一个包。然后你可以用 import utilities.django 来导入它。顺便说一下,把你的模块命名为和标准库或者你知道会用到的包同样的名字是个坏习惯。你永远不知道什么时候会搞混,搞不清楚该用哪个模块。

12

你需要在文件的最上面开启绝对导入功能:

from __future__ import absolute_import

接下来,你需要把模块里的导入语句转换成合适的绝对导入或相对导入。

撰写回答