目录结构:
TestProject
ModuleFiles
__init__.py
Module1.py
Profile
__init__.py
main.py
test.py
在 main.py 文件中调用 Module1
from ModuleFiles import Module1
提示
ModuleNotFoundError: No module named \'ModuleFiles\'
在 test.py 中使用相同的方式调用,可以正常调用,请问这个是怎么回事?
1 个回答
0
ccutmis
iT邦高手 2 级 ‧ 2024-12-12 20:40:03
最佳解答
用绝对路径载入模组的方法提供您参考看看... 假设 testProject 目录路径为: "C:\\testProject"
Module1.py 内容 :
def hello_world():
print(f"function : hello world!")
class ItHelp:
def __init__ (self):
self.uname="mis"
def show_uname(self):
print(f"class ItHelp : {self.uname}!")
main.py 内容 :
import sys
import importlib.util
def load_module_from_abs_path(module_name,abs_path):
spec = importlib.util.spec_from_file_location(module_name, abs_path)
foo = importlib.util.module_from_spec(spec)
sys.modules[module_name] = foo
spec.loader.exec_module(foo)
return foo
if __name__ == \'__main__\':
x=load_module_from_abs_path("*","C:\\\\testProject\\\\ModuleFiles\\\\Module1.py")
x.hello_world()
y=x.ItHelp()
y.show_uname()
执行结果 :
C:\\testProject\\Profile>main.py
function : hello world!
class ItHelp : mis!