无需安装模块,如何在子目录脚本中导入common下的模块?
无需安装模块的Python导入方案
针对你的项目结构,以下几种方法可以解决ModuleNotFoundError问题,且适合非Python用户使用:
方法1:动态添加项目根目录到Python路径
在batch_process_raw_data.py开头添加这段代码,让脚本自动识别并添加项目根路径:
import os import sys # 获取当前脚本的绝对路径所在目录 current_script_dir = os.path.dirname(os.path.abspath(__file__)) # 定位到项目根目录(final文件夹) project_root = os.path.dirname(current_script_dir) # 将根目录加入Python搜索路径 sys.path.append(project_root) # 现在可以正常导入目标模块 from common import batch_data_processing
这种方式完全不需要用户操作,脚本自行处理路径,对非技术用户最友好。
方法2:使用相对导入(需规范运行方式)
如果项目以包结构运行,可采用相对导入:
from ..common import batch_data_processing
但要求必须从final的上级目录以模块方式启动脚本,命令如下:
python -m final.Processing_raw_data.batch_process_raw_data
这种方式需要用户执行指定命令,适合能简单操作终端的用户。
方法3:用启动脚本封装环境变量配置
为非Python用户封装启动脚本,把路径配置藏在脚本里,用户只需双击或执行脚本即可:
Windows批处理脚本(放在final文件夹下,命名为run.bat)
@echo off set PYTHONPATH=%~dp0 python Processing_raw_data\batch_process_raw_data.py
Linux/macOS Shell脚本(放在final文件夹下,命名为run.sh)
#!/bin/bash export PYTHONPATH=$(pwd) python Processing_raw_data/batch_process_raw_data.py
用户无需理解路径原理,直接运行启动脚本就能执行程序。
内容的提问来源于stack exchange,提问作者Kamel O.L.
相关产品推荐
相关产品推荐

