同目录及子目录文件导入失败:ModuleNotFoundError问题求助
解决Python模块导入找不到的问题
根据你的文件夹结构,deep_knn.py和utils目录都在src子文件夹下,而Python默认不会自动将当前目录的子目录加入模块搜索路径,所以出现ModuleNotFoundError。以下是几种可行的解决方法:
方法1:在代码中临时添加模块路径
在所有导入语句之前,加入以下代码将src目录添加到Python的搜索路径中:
import sys import os # 获取当前所在目录(确保你处于DeepNNK_polytope_interpolation目录下运行) current_dir = os.getcwd() # 将src目录加入搜索路径 sys.path.append(os.path.join(current_dir, 'src')) # 现在可以正常导入 from deep_knn import Deep_KNN import utils.tensorflow_utils as tf_utils
方法2:设置系统环境变量PYTHONPATH
通过环境变量让Python识别src目录(终端重启后需重新设置,若要永久生效可写入系统配置文件):
- Linux/macOS:在终端执行(确保当前处于
DeepNNK_polytope_interpolation目录)export PYTHONPATH="$PYTHONPATH:$(pwd)/src" - Windows CMD:
set PYTHONPATH=%PYTHONPATH%;%cd%\src - Windows PowerShell:
$env:PYTHONPATH += ";$(Get-Location)\src"
方法3:修改导入路径指定父模块
在导入时直接指定src作为父模块(可在src目录下创建空的__init__.py文件,Python 3.3+可不创建,但添加后兼容性更好):
from src.deep_knn import Deep_KNN from src.utils import tensorflow_utils as tf_utils
方法4:用pip安装本地可编辑包
如果项目根目录下存在setup.py或pyproject.toml文件,在DeepNNK_polytope_interpolation目录下执行:
pip install -e .
这会将项目以可编辑模式安装到Python环境中,之后无需额外设置路径即可直接导入模块。
内容的提问来源于stack exchange,提问作者szhang04
相关产品推荐
相关产品推荐

