来自不同项目的Python导入类具有相同名称

时间:2015-03-11 15:18:57

标签: python import

Project 1 Project 2 |-lib |-lib | |-Toolkit.py | |-Toolkit.py | |-Something.py | |-Class.py | |-... | |-... |-... |-... Project 2中的Class.py从Project 2导入Toolkit.py,从Project 1导入Something.py.Project 1中的Something.py从Project 1导入Toolkit.py。

我无法更改项目1,并希望在项目2中保留名称Toolkit.py。在Class.py中,我尝试了两者 from Toolkit import function1, function2import lib.Toolkit as TK,但我仍然有错误: ImportError: cannot import name 'someFunction',这是Something.py的函数。我该怎么解决这个问题?

3 个答案:

答案 0 :(得分:3)

确保您的项目是包。 (将__init__.py文件放在文件夹中)

只需重命名导入然后再使用它。

import Project1.lib.Toolkit as TK1
import Project2.lib.Toolkit as TK2

TK1.do_function()
TK2.do_function()

答案 1 :(得分:1)

Import Project1.lib.Toolkit as T1
Import Project2.lib.Toolkit as T2

我很确定这会有用,但不能说我已尝试过了

答案 2 :(得分:0)

这些项目设计不当。它们应该作为包实现,以便它们可以具有类似命名的模块而不会发生冲突。考虑项目2包的名称,然后将其更改为

Project 2
    lib
        mypackage
            __init__.py
            Toolkit.py
            Class.py

然后您可以使用包相对导入来获取所需的模块。

相关问题