[英]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
。
假设demo
和kernels
具有相同的父目录,则在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.