如何在不导入更改的情况下从模块运行脚本



我想在我创建的模块内运行一个脚本,但我遇到了导入问题。

我有一个Main.py,一个里面有Regression.py的文件夹Data和另一个里面是Modifier.py的文件夹Image。

像这样:

Main.py
Data/
| __init__.py
| Regression.py
| Image/
| __init__.py
| Modifier.py

主导入回归和回归导入修饰符。

内部遗憾.py我有import Image但是去了我运行Main.py我有以下错误:

ModuleNotFoundError: No module named 'Image'

但是,如果我在运行main时使用from Data import Image没有错误,但在运行Regission.py时出现错误:

ImportError: cannot import name 'Image' from 'Data'

我找到的唯一解决方案是这样做:

if __name__ == "__main__":
import Image
elif __name__ == "Data.Regression":
from Data import Image

这个解决方案是有效的,但如果我创建另一个使用Data的模块,就会有问题。

拜托,还有其他解决方案吗?

主要.py

import Data
if __name__ == "__main__":
data = Data.Regression.LoadTest()
print("End")

数据/__init__.py

__all__ = ["Classification", "Regression"]
from . import Classification
from . import Regression

数据/回归.py

if __name__ == "__main__":
import Image
elif __name__ == "Data.Regression":
from Data import Image
import numpy as np
def LoadSet():
#load img
data = Image.Modifier.Modify(img)
# other part of code
return result
if __name__ == "__main__":
test = Regression.LoadSet()
# test code of Regression
print("End")

数据/图像/__init__.py

__all__ = ["Modifier"]
from . import Modifier

数据/图像/修改器.py

import numpy as np
def Modify(img):
# modify my image
return img

使用相对导入:

from . import Image

或键入要导入的模块的完整路径,相对于__main__:

import Data.Image

请遵守惯例,用小写字母命名您的模块。

相关内容

最新更新