Luc*_*uca 1 python python-import
我正在创建一个具有以下目录结构的python项目:
demos
demo1.py
kernels
rbf.py
___init__.py
Run Code Online (Sandbox Code Playgroud)
该文件rbf.py定义了一个名为的类RBF.将__init__.py在文件kernels目录中包含以下行:
from .rbf import *
Run Code Online (Sandbox Code Playgroud)
现在demo1.py包含以下导入:
from kernels import RBF
Run Code Online (Sandbox Code Playgroud)
然而,这失败了
ImportError: No module named kernels
Run Code Online (Sandbox Code Playgroud)
因此该demos文件夹看不到kernels包目录.我不知道如何做到这一点.
您应该将父目录添加kernels到任一PYTHONPATH环境变量或直接添加到sys.pathPython以便能够找到该包kernels.
修改的实施例sys.path中demo1.py,假设两个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
Run Code Online (Sandbox Code Playgroud)
以上是做什么的 -
__file__ 获取脚本的路径
os.path.dirname(__file__) - 获取包含该文件的目录的路径.
os.path.join()- 创建路径,如 - /path/to/demos/..- 取决于操作系统.
os.path.abspath - 从中获取父目录的绝对路径 /path/to/demos/..
| 归档时间: |
|
| 查看次数: |
3579 次 |
| 最近记录: |