将启动脚本移入子文件夹后,能否访问父文件夹内的工具?
问题解答
是/否答案
是,完全可以将启动脚本移入子文件夹并正常访问tools内的工具,无需全部留在根目录。
实现方法
- 方法一:手动添加项目根目录到Python路径
在子文件夹的启动脚本开头添加以下代码,将项目根目录加入Python的模块搜索路径,之后直接用绝对导入即可:import sys from pathlib import Path # 获取项目根目录(当前脚本在根目录下的子文件夹中) root_dir = Path(__file__).parent.parent sys.path.append(str(root_dir)) # 导入工具 from tools.test_tool import TestTool - 方法二:将项目作为可安装包(推荐)
- 在项目根目录创建
setup.py或pyproject.toml,把项目标记为可安装包 - 执行命令安装开发模式:
pip install -e . - 之后任何子文件夹的启动脚本都能直接用绝对导入:
from tools.test_tool import TestTool
- 在项目根目录创建
- 方法三:通过模块方式启动脚本
不要直接运行子文件夹里的脚本,而是从项目根目录执行:python -m subfolder.your_script,此时可正常使用相对或绝对导入。
内容的提问来源于stack exchange,提问作者Vitaliy
相关产品推荐
相关产品推荐

