目录结构:
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 中使用相同的方式调用,可以正常调用,请问这个是怎么回事?
用絕對路徑載入模組的方法提供您參考看看... 假設 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!