Skip to main content
 首页 » 编程设计

python: 在包中找不到模块

2025年05月04日14langtianya

我正在创建一个具有以下目录结构的 python 项目:

demos 
   demo1.py 
kernels 
   rbf.py 
   ___init__.py 

文件 rbf.py 定义了一个名为 RBF 的类。 kernels 目录中的 __init__.py 文件包含以下行:

from .rbf import * 

现在 demo1.py 包含以下导入:

from kernels import RBF 

然而,这失败了

ImportError: No module named kernels 

所以demos文件夹中没有看到kernels包目录。我不知道该怎么做才能完成这项工作。

请您参考如下方法:

您应该将 kernels 的父目录添加到 PYTHONPATH 环境变量或直接添加到 sys.path 以便 Python 能够找到kernels 包。

修改 demo1.py 中的 sys.path 的示例,假设 demo 和 kernels 具有相同的父目录-

import os, os.path 
import sys 
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__),'..'))) 
from kernels import RBF 

以上是做什么的-

__file__ 获取脚本的路径

os.path.dirname(__file__) - 获取包含文件的目录路径。

os.path.join() - 创建类似 /path/to/demos/.. 的路径 - 取决于操作系统。

os.path.abspath - 从/path/to/demos/..

获取父目录的绝对路径