从一个模块导入到另一个模块

时间:2018-03-21 13:34:19

标签: python plugins qgis

我在同一目录中有两个模块: PDSC2.pydb_layer.py 我想从DBLayer导入一个名为db_layer.py的类,所以我写道:

from db_layer.py import DBLayer 

但是我收到了一个错误:

ModuleNotFoundError: No module named 'db_layer'

有些人知道我做错了什么吗?

4 个答案:

答案 0 :(得分:0)

首先假设这个python文件存放在同一目录中,然后从代码中删除扩展名。

from db_layer import DBLayer 

from db_layer import *

答案 1 :(得分:0)

目录是否在python搜索模块的地方,python路径?你在目录中有__init__.py(它可以是空白的吗?)

答案 2 :(得分:0)

您需要将程序文件db_layer.py粘贴到\Python\Python36-32\Scripts目录中 ,然后使用from db_layer import DBLayerfrom db_layer.py import DBLayer在python程序中调用所需的类。

实际上,有时将被调用模块的目录更改为\Python\Python36-32\Scripts可以轻松解决这些类型的问题。

答案 3 :(得分:0)

这是对我有用的解决方案:

import sys
sys.path.append("C:\\Users\\carmel.han\\AppData\\Roaming\\QGIS\\QGIS3\\profiles\\default\\python\\plugins/filterparcel")
from db_layer import DBLayer