簡體   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