Python模块导入-显式与隐式相对导入

Python模块导入-显式与隐式相对导入,python,python-import,python-module,Python,Python Import,Python Module,昨晚,在我的mac电脑上工作时,我在我的\uuu init\uuuuuuuy.py中设置了一些模块导入 from MongoProvider import MongoProvider from Settings import Settings 我不确定那台机器上的Python是什么版本。等我有了这些信息后,我会用这些信息编辑这个问题 今天,在另一台机器上工作,即Windows,并使用Python 3.3.3,我的模块导入中断。通过添加一个显式的相对导入(添加一个前导点),我能够解决这个问题 f

昨晚,在我的mac电脑上工作时,我在我的
\uuu init\uuuuuuuy.py
中设置了一些模块导入

from MongoProvider import MongoProvider
from Settings import Settings
我不确定那台机器上的Python是什么版本。等我有了这些信息后,我会用这些信息编辑这个问题

今天,在另一台机器上工作,即Windows,并使用Python 3.3.3,我的模块导入中断。通过添加一个显式的相对导入(添加一个前导点),我能够解决这个问题

from .MongoProvider import MongoProvider
from .Settings import Settings
我收到的线索是:

Traceback (most recent call last):
File "app.py", line 5, in <module> from modules.route_handlers import Route_Handlers
File "C:\Users\willb\bearded-dubstep\modules\route_handlers\Route_Handlers.py", line 9, in <module> from modules.backend_providers import Settings
File "C:\Users\willb\bearded-dubstep\modules\backend_providers\__init__.py", line 1, in <module> from MongoProvider import MongoProvider
ImportError: No module named 'MongoProvider'
回溯(最近一次呼叫最后一次):
文件“app.py”,第5行,from modules.route\u handlers导入route\u handlers
文件“C:\Users\willb\beared dubstep\modules\route\u handlers\route\u handlers.py”,第9行,在from modules.backend\u providers导入设置中
文件“C:\Users\willb\beared dubstep\modules\backend\u providers\\uuuuu init\uuuuuuu.py”,第1行,从MongoProvider导入MongoProvider
ImportError:没有名为“MongoProvider”的模块
我的项目布局是


|_模块
|_api_帮助程序
|__初始值py
|InvalidUsage.py
|响应_utils.py
|_后端\u提供程序
|__初始值py
|MongoProvider.py
|Settings.py
|_路由处理程序
|__初始值py
|路由处理程序
|app.py


你知道这是什么原因吗?我应该看看配置文件吗?

你的mac电脑上的Python版本是2.x,而windows上的Python版本是3.x

在使用模块tkinter(Python2.x中的tkinter)之前,我遇到了相同的问题

似乎我们需要使用从XXX.XXX导入XXX来导入。。。●﹏●

我不知道为什么,可能是设计师正在适应Python。

好吧,根据导入部分:

不应使用隐式相对导入,并且在Python 3中已将其删除

由于Python3.3会给您带来麻烦,使您显式地导入相关模块,我认为这可以解释这种情况。可能是在Mac上有Python2.x,这就是它在那里工作的原因

查看项目的文件分布,
Settings.py
MongoProvider
确实是相关模块。这意味着在Python 3中删除隐式相对导入会给您带来麻烦,因为导入系统无法找到模块:

ImportError: No module named 'MongoProvider'

这是什么Python版本?Windows使用的是3.3.3。我不确定我的Mac电脑上有什么。这几天的出货量是多少?你能提供更多的信息吗?像Windows中的例外吗?您正在查看项目的文件布局等?