Python 3.x 运行pytest时发生导入错误

Python 3.x 运行pytest时发生导入错误,python-3.x,python-import,pytest,nose,Python 3.x,Python Import,Pytest,Nose,我的测试框架采用以下格式,我正在尝试从test_login.py调用login.py testSuite \projects \project1 \pageobjects \login.py \testcase \test_login.py (contains class 'LoginPage') \testframeworkcode\ 在test_login.py中,当我以以下

我的测试框架采用以下格式,我正在尝试从test_login.py调用login.py

testSuite
  \projects
      \project1
         \pageobjects
              \login.py
          \testcase
              \test_login.py (contains class 'LoginPage')
  \testframeworkcode\ 
在test_login.py中,当我以以下方式导入时,会出现以下错误

     from projects.project1.pageobjects.login import LoginPage

     ModuleNotFoundError: No module named 'projects'
经过一段时间的搜索,我使用了下面的方法,然后给出了下面的错误

    from ..pageobjects.login import LoginPage

    ValueError: attempted relative import beyond top-level package
有人能帮忙吗?是什么导致了这些错误

我使用Python3和pytest来执行我的测试用例,并使用pycharm IDE

编辑: 当我在上述文件夹结构中的“testsuite”文件夹中执行以下命令时,它运行良好,没有任何错误

  python3 -c 'import projects.project1.pageobjects.login'
  python3 -c 'import projects.project1.pageobjects'
  python3 -c 'import projects.project1' 
  python3 -c 'import projects'
但是,当我使用这些导入并使用pytest或nosetests执行测试用例时,会出现ModuleNotFoundError


我在projects目录的所有子文件夹中都有init.py文件。即使我删除了这些init.py文件,我也会得到相同的结果。

是否有
\uuuuuu init\uuuuuuuuuupy
文件表明有一个包?导入仅适用于包,请参阅。要使pytest正常工作,您的包应该可以正确导入。是。我把init.py文件放在projects文件夹下,这还不够(顺便问一下,你是否在文件名的“init”部分前后加了双下划线?)。重要的是,从“Python路径”()中的一个元素开始。如果您希望从projects.project1.pageobjects.login编写
,则必须有
项目/\uuu init\uuuuuuuuuuuupy
项目/project1/\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuupy.py
项目。我自愿放弃了更高级的设置。是的。我确实在projects文件夹下的每个子文件夹中放置了init.py(init前后都有双下划线)文件,但这也没有帮助。我仍然收到相同的错误。在目录
testSuite
中,您可以无错误地运行:
python3-c'导入项目.project1.pageobjects.login'
python3-c'导入项目.project1.pageobjects'
python3-c'导入项目.project1'
python3-c'导入项目'
?请更新这些命令的输出。是否有任何
\uuuuu init\uuuuuuy.py
文件表明存在软件包?导入仅适用于包,请参阅。要使pytest正常工作,您的包应该可以正确导入。是。我把init.py文件放在projects文件夹下,这还不够(顺便问一下,你是否在文件名的“init”部分前后加了双下划线?)。重要的是,从“Python路径”()中的一个元素开始。如果您希望从projects.project1.pageobjects.login编写
,则必须有
项目/\uuu init\uuuuuuuuuuuupy
项目/project1/\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuupy.py
项目。我自愿放弃了更高级的设置。是的。我确实在projects文件夹下的每个子文件夹中放置了init.py(init前后都有双下划线)文件,但这也没有帮助。我仍然收到相同的错误。在目录
testSuite
中,您可以无错误地运行:
python3-c'导入项目.project1.pageobjects.login'
python3-c'导入项目.project1.pageobjects'
python3-c'导入项目.project1'
python3-c'导入项目'
?请更新这些命令的输出。