gpt4 book ai didi

python - 如何使用 Python 3 从不同目录导入模块?

转载 作者:太空狗 更新时间:2023-10-30 01:05:00 28 4
gpt4 key购买 nike

我试图导入一个模块进行测试,但收到此错误:

Traceback (most recent call last): File "BaseTest.py", line 8, in from .main.pageobjects.FBPage import * ModuleNotFoundError: No module named 'main.main'; 'main' is not a package

项目树如下所示:

/- ProjectDir
/- .src
/- .src.main
/- .src.main.core
/- .src.main.core.BaseCode <- base code to be extended as parent
/- .src.main.core.pageobjects
/- .src.main.core.pageobjects.Module <- a module that inherit from BaseCode
/- .src.tests
/- .src.tests.BaseTest <- main testing module
/- .src.tests.results

我基本上是在我的 BaseTest 模块中完成的:

from .main.pageobjects.Module import *

我在这里做错了什么? :)

最佳答案

您必须在模块下导入特定的类(或类)。请参阅下面的代码片段。我已经在代码下方解释了逻辑。

from src.main.core.pageobjects.Module.module1 import Module1
from src.main.core.pageobjects.Module.module2 import Module2

在模块内部,我创建了两个 python 文件:模块 1 和模块 2;在模块 1 中,我创建了一个类——模块 1;在模块 2 中,我创建了一个类——模块 2;然后我使用下面的代码片段导入包中的两个类

src.tests.BaseTest

单击项目结构屏幕截图的链接。 How to import a module from different directory with Python 3?请参阅 BaseTest 模块下 module1、module2 和 logintest 的 python 代码。

模块1.py

类模块 1(对象): def init( self ): print('这是模块 1 的例子')

def print_info(self):
print("this is module 1 print statement")

模块2.py

类模块 2(对象): def init( self ): print('这是模块 2 的例子')

def print_info(self):
print("this is module 2 print statement")

src.tests.BaseTest模块下的logintest.py

    from src.main.core.pageobjects.Module.module1 import Module1
from src.main.core.pageobjects.Module.module2 import Module2

m1=Module1()
m2=Module2()
m1.print_info()
m2.print_info()

运行 logintest.py 并查看结果。结果来自 src.main.core.pageobjects.Module 包中的 module1 和 module2。

C:\Python36\python.exe C:/Users/SeleniumMaster/PycharmProjects/ProjectDir/src/tests/BaseTest/logintest.py
This is a module 1 example
This is a module 2 example
this is module 1 print statement
this is module 2 print statement

Process finished with exit code 0

关于python - 如何使用 Python 3 从不同目录导入模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47961694/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com