繁体   English   中英

Python:导入具有相同名称的不同模块

[英]Python : importing different module with same name

我正在开发一个项目,需要有几个同名的模块。 这是体系结构的代表性摘录,使用__init__.py文件显示哪些文件夹是模块:

/path1
    /ProjectA
        __init__.py
        /src
            __init__.py
            /ctrl
                __init__.py
                somectrl.py
            ...
/path2
    /ProjectA
        __init__.py
        /src
            __init__.py
            someclass.py

在我的班级someclass.py ,我想导入somectrl.py如下所示:

from ProjectA.src.ctrl import somectrl

但导入失败:它告诉我没有ctrl包。 看起来它只是从path2查看ProjectA ,并完全忽略来自path1 ProjectA path1path2都在我的PYTHONPATH 那他们俩都不能到达?

在这种令人讨厌的情况下,有一条干净的方法吗?

一种方法是使用imp模块。

import imp
somectrl = imp.load_source("somectrl", "path1/ProjectA/src/ctrl/somectrl.py")
someclass = imp.load_source("someclass", "path2/ProjectA/src/someclass.py")

暂无
暂无

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

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