关于导入的错误 Python

Errors about imports Python

我在导入和文件结构方面遇到了一些问题。 我已经创建了在我的脚本组件中调用的自定义包。 我想使用 "import" "from" 但我的包裹不可用。

这是我的树结构:

|- __init__.py
|- main.py
|- project/
    |- __init__.py
    |- components/
        |- __init__.py
        |- packages/
            |- __init__.py
            |- HERE MY PACKAGES pkg_insert_bdd.py
        |- scripts
            |- __init__.py
            |- HERE MY SCRIPTS -> import pkg_insert_bdd

所有脚本都在main.py中执行 但问题是执行脚本时找不到包。

# my_script in folder scripts
from project.components.packages.pkg_insert_bdd import Database

这段代码存在于我的脚本中。

这是Python返回的结果:

ModuleNotFoundError: No module named 'project'

你对我的错误有什么看法吗? 或者对我使用的树结构的建议?

感谢您的反馈!

几个问题: 1)你如何以及在哪里执行你的脚本? 2) 您是将其作为模块还是作为独立脚本执行?

如果您将脚本执行为:

python3 -m main

在你的最外层目录

仍然出现错误,请尝试以下操作:

1) 在终端中,在 运行 脚本之前键入以下内容:

export PYTHONPATH=$PYTHONPATH:path_to_your_project/project_name

2) 然后 运行:

python3 -m main

如果您正在使用 pycharm, 请将上述代码放在文件夹名称中的相同结构中,例如:bdd_framework。在pycharm中打开项目并右键单击文件夹(bdd_framework) -> select "Mark as Directory as" -> "Sources Root"。 这将解决问题。

您不能在其中导入模块。

这就是它不起作用的原因,因为您正试图从 scripts 文件夹中导入 project 模块,该文件夹位于该模块内。

要解决这个问题,你需要将 scripts 文件夹从 project 模块中移出,并将其放在与 main.py 相同的目录中,这样 Python 将成功导入模块。

更新:

如果您想单独测试每个脚本,则必须在 main.py 旁边创建一个名为 tests 的模块。文件树应该是这样的:

|- __init__.py
|- main.py
|- tests
    |- __init__.py
    |- test_script1.py
    |- test_script2.py
    |- ....
|- scripts
    |- __init__.py
    |- script1.py
    |- script2.py
    |- ....
|- project/
    |- __init__.py
    |- components/
        |- __init__.py
        |- packages/
            |- __init__.py
            |- HERE MY PACKAGES pkg_insert_bdd.py