Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django应用程序与子模块名称冲突_Python_Django_Python 2.7_Python Import_Django 1.6 - Fatal编程技术网

Python Django应用程序与子模块名称冲突

Python Django应用程序与子模块名称冲突,python,django,python-2.7,python-import,django-1.6,Python,Django,Python 2.7,Python Import,Django 1.6,我在项目中有同名的模块,都放在不同的应用程序中 特别是有两个应用程序冲突并导致严重的恐怖。项目结构大致如下 project |_ project |_ settings.py |_ ... |_ apps |_ A |_ handlers |_ B.py |_ C.py |_ B |_ models.py 设置文件将apps目录添加到系统路径 BASE_DIR = os.path.dirname(os.path.

我在项目中有同名的模块,都放在不同的应用程序中

特别是有两个应用程序冲突并导致严重的恐怖。项目结构大致如下

project
 |_ project   
   |_ settings.py
   |_ ...
 |_ apps
   |_ A
     |_ handlers
       |_ B.py
       |_ C.py
   |_ B
     |_ models.py
设置文件将
apps
目录添加到系统路径

BASE_DIR = os.path.dirname(os.path.dirname(__file__))
sys.path.insert(0, os.path.join(BASE_DIR, "apps"))
此配置假定当我导入
B.models
时,它将使用
apps/B/models.py
。尽管
C.py
文件中的以下行在导入没有
模型的
A/handlers/B.py
模块时引发导入错误

A/handlers/C.py:
    from B.models import BModel
sys.path
变量具有正确的项,即列表中的第一个项是
/path/to/project/apps
,并且
sys.modules['B.models']
引用了正确的文件

顺便说一句,当我使用Django的
import\u by\u path
函数时,一切正常

你知道我如何在不重命名模块的情况下解决这个问题吗

提前谢谢

更新


发布在GitHub上。

很抱歉我误解了,这就是为什么删除我的答案。避免此问题的一种方法是按如下顺序排序:可以将python作为脚本语言使用
from a.b.c import d\from a.c import f
。除此之外,我不知道如何解决它。可能的重复