当同一模块存在于两个位置时,python _; import __;()从两个不同的目录导入

当同一模块存在于两个位置时,python _; import __;()从两个不同的目录导入,python,python-2.1,Python,Python 2.1,我有一个python应用程序,它的目录结构如下 -pythonapp -mainpython.py -module1 -submodule1 -file1.py -file2.py -submodule2 -file3.py -file3.py -submodule3 -file1.py -file2.py

我有一个python应用程序,它的目录结构如下

-pythonapp
   -mainpython.py   
   -module1
      -submodule1
          -file1.py
          -file2.py

      -submodule2
           -file3.py
           -file3.py

      -submodule3
           -file1.py
           -file2.py
           -file5.py
           -file6.py
           -file7.py
当我尝试在submodule3下导入python实用程序(从mainpython.py)时,我从submodule1获得了最初的两个文件(请注意,submodule1和3有两个同名的不同文件)。但是,当没有冲突时,相同的导入工作正常,即它正确地从子模块3导入文件5、6、7

代码如下:

name=os.path.splitext(os.path.split("module1\submodule3\file1.py")[1])[0] --> file1.py name here is passed dynamically. 

module = __import__(name) 
//这是一个类似于“file1”的名称,它可以工作(但是,当动态地传递文件名时,上面提到的问题是有效的),但是如果我以“module1.submodule1.file1”的形式传递完整的包,它会失败,并显示一个ImportError“没有名为file1的模块”

现在的问题是,我们如何告诉解释器只使用“module1.submodule3.file2”下的那些?我正在使用python


这真的很紧急,我已经试过了。希望一些有经验的python开发人员能帮我解决这个问题?

尝试在目录外创建包,方法是在每个目录中都有一个空的
\uuuuu init\uuuuuuuuy.py
文件,并且每当您想使用

from submodule import mymodule

语法。创建包是将模块划分为不同名称空间的好方法。并根据其功能命名模块,而不是将其命名为file1、file2等。

您可以重新格式化您的问题吗?您为什么要使用
\uuuuuuu import\uuuu
?为什么不直接从module1.submodule3导入文件x