有关导入Python的错误

2024-04-29 06:30:04 发布

您现在位置: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

所有脚本都在主.py 但问题是,当执行脚本时,它找不到包。你知道吗

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

这段代码出现在我的脚本中。你知道吗

下面是Python返回的结果:

ModuleNotFoundError: No module named 'project'

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

感谢您的反馈!你知道吗


Tags: frompyimportproject脚本hereinitmy
3条回答

如果你用的是pycharm, 请将上述代码放在同一个文件夹名的相同结构中,例如:bdd\u framework。在pycharm中打开项目,右键单击文件夹(bdd\u framework)->;选择“Mark as Directory as”->;“Sources Root”。 这将解决问题。你知道吗

几个问题: 1) 如何执行脚本,在哪里执行脚本? 2) 您是作为模块还是作为独立脚本执行它?你知道吗

如果执行脚本的方式是:

python3 -m main

在你最外面的目录里

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

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

export PYTHONPATH=$PYTHONPATH:path_to_your_project/project_name

2)然后运行:

python3 -m main

不能在其中导入模块。你知道吗

这就是为什么它不起作用的原因,因为您试图从scripts文件夹导入project模块,该文件夹位于该模块内。你知道吗

要解决这个问题,您需要从project模块中移动scripts文件夹,并将其放在与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

相关问题 更多 >