繁体   English   中英

python:在包中找不到模块

[英]python: cannot find module in the package

我正在创建具有以下目录结构的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环境变量或直接添加到python的sys.path ,以便能够找到软件包kernels

假设demokernels具有相同的父目录,则在demo1.py中修改sys.path示例-

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/..获取父目录的绝对路径/path/to/demos/..

如果demo1和内核都不在同一文件夹中,则必须将内核文件的path添加到path环境变量中。

import sys
sys.path.append("/path/to/kernels") 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM