ModuleNotFoundError:没有名为“项目”的模块

阿迪亚

我正在做一个烧瓶项目。该项目的结构如下:

├── project
│   ├── config.py
│   ├── __init__.py
│   ├── models.py
│   ├── main
│   ├── static
│   ├── templates
│   └── users
└── run.py

运行

from project import create_app
app = create_app()

if __name__=="__main__":
    app.run(debug=True)

__init__.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from project.config import Config

db = SQLAlchemy()

def create_app(config_class=Config):
    app = Flask(__name__)
    app.config.from_object(Config)

    db.init_app(app)

    from project.main.routes import main
    from project.users.routes import users

    app.register_blueprint(main)
    app.register_blueprint(users)
    return app

models.py

from flask import current_app
from project import db

class Users(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    image_file = db.Column(db.String(20), nullable=False, default='default.jpg')
    password = db.Column(db.String(60), nullable=False)
    posts = db.relationship('Post', backref='author', lazy=True)

    def __repr__(self):
        return f"User('{self.username}', '{self.email}', '{self.image_file}')"


class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    content = db.Column(db.Text, nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)

    def __repr__(self):
        return f"Post('{self.title}', '{self.date_posted}')"

我的问题是当我在project/project目录中打开终端并打开python提示符并从models.py导入Users或Post时,它给了我错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/aman/Desktop/websites/project/project/models.py", line 2, in <module>
    from project import db
ModuleNotFoundError: No module named 'project'

但是很明显,项目确实存在,并且也是python模块,因为我已经在项目目录中创建了一个init .py文件。请帮我。

阿迪亚

最后,我发现我试图从项目模块内部导入数据库和用户。当我尝试从项目模块的外部目录访问db和Users时,我终于成功了。

我正在导入db:的初始目录/home/aman/Desktop/websites/project/project,这将导致错误。

现在,我正在导入目录db:/home/aman/Desktop/websites/project效果很好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ModuleNotFoundError:没有名为“ buildozer”的模块

ModuleNotFoundError:没有名为“ matplotlib”的模块

ModuleNotFoundError:没有名为“ BaseHTTPServer”的模块

ModuleNotFoundError:没有名为“ Cython”的模块

ModuleNotFoundError:没有名为“ Ipython”的模块

ModuleNotFoundError:没有名为“模型”的模块

ModuleNotFoundError:没有名为“ camelcase”的模块

ModuleNotFoundError:没有名为“烧瓶”的模块

ModuleNotFoundError:没有名为“ gin”的模块

ModuleNotFoundError:没有名为“ jieba”的模块

ModuleNotFoundError:没有名为“ fastai”的模块

ModuleNotFoundError:没有名为“建模”的模块

ModuleNotFoundError:没有名为“ knox”的模块

ModuleNotFoundError:没有名为“ jose”的模块

ModuleNotFoundError:没有名为“ lxml”的模块

ModuleNotFoundError:没有名为“ ruamel”的模块

ModuleNotFoundError:没有名为“ printSoln”的模块

ModuleNotFoundError:没有名为“ pynput”的模块

ModuleNotFoundError:没有名为“ mglearn”的模块

ModuleNotFoundError: 没有名为“bootstrapform”的模块

ModuleNotFoundError: 没有名为“src”的模块

ModuleNotFoundError: 没有名为“tensorboard”的模块

ModuleNotFoundError: 没有名为“model”的模块

ModuleNotFoundError:没有名为“我的项目”的模块

ModuleNotFoundError:没有名为“python”的模块

ModuleNotFoundError: 没有名为“aiohttp”的模块

ModuleNotFoundError:没有名为“dmidecode”的模块

ModuleNotFoundError:没有名为“dbutils”的模块

没有名为“Skimage”的模块 ModuleNotFoundError