Python 相对导入在 VS Code 中不起作用,但在 PyCharm 中起作用

问题描述 投票:0回答:1

我正在尝试在

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())

这是文件夹结构:

enter image description here

python visual-studio-code import module python-import
1个回答
0
投票

当你用VS code执行task.py时,它会在model文件夹中查找db文件夹,但找不到......你可以将db文件夹放在model文件夹中,它应该可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.