技术 1
您可以使用 sys.path.insert() 内置方法将 main.py 的路径插入到系统路径变量的位置 1。这样可以确保以最高优先级加载它并避免任何命名冲突(如果存在)。
请看下面我是如何解决这个问题的:
我的文件夹结构如下图:
import_test
├── functions
│ └── function.py
├── main.py
我的 main.py
def printFromMainA():
print("FromMainA")
def printFromMainB():
print("FromMainB")
我的函数/function.py
import sys
sys.path.insert(1, "Absolute path to import_test/")
from main import *
def printFunction():
print("FromFunction")
printFromMainA()
printFromMainB()
printFunction()
最后当我从import_test 文件夹运行时
python functions/function.py
我得到以下输出:
FromFunctionA
FromMainA
FromMainB
技术 2
您也可以使用sys.path.append() 方法将 main.py 的路径附加到系统的路径变量。这会将当前路径添加到系统路径列表的最后一个位置。
在这种情况下,你需要对 function.py 做的就是:
import sys
sys.path.append("Absolute path to import_test/")
from main import *
def printFunction():
print("FromFunction")
printFromMainA()
printFromMainB()
printFunction()
这也应该给你想要的输出。