[英]How do I do imports from a python script when my main scripts are in a subfolder of the whole package?
我正在尝试为项目创建一个小的文件夹结构,并且不想让事情变得过于复杂。 我想将组件分成
所以我当前的结构看起来像这样:
project
|
- tools
|
- __init__.py
- tool_a
|
- __init__.py
- file.py
- file2.py
|
- tool_b
|
- __init__.py
|
- start_scripts
|
- start_use_case_1.py
- start_use_case_2.py
现在在start_use_case_1.py
我想导入模块tools.tool_a.file
。 以下方法已失败:
import tools.tool_a.file
然后从文件夹project/
调用python start_scripts/start_use_case_1.py
。 它找不到模块tools
。 但是,当我从交互式python shell执行相同操作时,它可以工作。
以下内容也不起作用:
from ..tools.tool_a import file
SystemError:父模块“”未加载,无法执行相对导入
我读到,不允许从__main__
脚本进行相对导入。 即使我不太在意良好的样式,因为这些启动脚本是项目的重要部分。 我只是不想每次在解释器中重新输入它们。
您需要向目录添加路径,以便从任何文件中导入代码片段,这可以像这样完成:
import sys
sys.path.append("./")
现在您可以执行以下操作: from tools import tool_a
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.