我正在尝试在
db/connectdb.py
中导入 model/task.py
,model
和 db
文件夹都在主项目文件夹中。
当我尝试
from db.connectdb import ConnectDb
我得到
ModuleNotFoundError:没有名为“db”的模块
当我尝试
from ..db.connectdb import ConnectDb
我得到
ImportError:尝试在没有已知父包的情况下进行相对导入
PyCharm 中一切运行良好。
我尝试将
__init__.py
添加到每个文件夹,但它给出了相同的问题。
这是
connectdb.py
:
import os
import sqlite3
class ConnectDb():
def __init__(self):
db_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'app.db')
if os.path.isfile(db_path):
self.db = sqlite3.connect(db_path)
else:
#self.db = None
print("non")
def get_connection(self):
return self.db
这是
task.py
:
#from ..db.connectdb import ConnectDb or
from db.connectdb import ConnectDb
class Tasks():
def __init__(self):
self.db = ConnectDb().get_connection()
def get_all_tasks(self):
return self.db.execute("Select * from tasks").fetchall()
t = Tasks()
print(t.get_all_tasks())
这是文件夹结构:
当你用VS code执行task.py时,它会在model文件夹中查找db文件夹,但找不到......你可以将db文件夹放在model文件夹中,它应该可以工作。