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, function2
和import lib.Toolkit as TK
,但我仍然有错误:
ImportError: cannot import name 'someFunction'
,这是Something.py
的函数。我该怎么解决这个问题?
答案 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
然后您可以使用包相对导入来获取所需的模块。