关于导入的错误 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
我在导入和文件结构方面遇到了一些问题。 我已经创建了在我的脚本组件中调用的自定义包。 我想使用 "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