Python子目录模块导入问题:如何在module1.py中导入lib.py
在指定目录结构下从module1.py导入lib.py的方法
目录结构说明:
根目录/ ├── lib/ │ └── lib.py └── module1/ └── module1.py
以下是几种可行的导入方法:
临时修改Python搜索路径
在module1.py中添加代码,将lib目录的绝对路径加入sys.path(Python的模块搜索路径):import sys from pathlib import Path # 获取lib目录的绝对路径 lib_dir = Path(__file__).parent.parent / "lib" sys.path.append(str(lib_dir)) # 导入lib模块 import lib这种方法无需额外配置,适合临时场景。
使用相对导入(需将项目作为包)
- 在根目录下创建空的
__init__.py文件,让根目录成为Python包。 - 在
module1.py中使用相对导入语法:from ..lib import lib
注意:必须从根目录的外部以模块方式运行脚本,比如在根目录的父目录执行:
python -m 根目录.module1.module1,不能直接在module1目录下运行module1.py。- 在根目录下创建空的
通过环境变量设置全局搜索路径
运行脚本前,将根目录路径添加到PYTHONPATH环境变量:- Linux/macOS终端:
export PYTHONPATH="/path/to/根目录:$PYTHONPATH" python module1/module1.py - Windows命令提示符:
set PYTHONPATH=C:\path\to\根目录;%PYTHONPATH% python module1\module1.py
设置完成后,
module1.py中可直接导入:import lib- Linux/macOS终端:
内容的提问来源于stack exchange,提问作者Alexander Wilhelm
相关产品推荐
相关产品推荐

