[英]ModuleNotFoundError: No module named 'project'
我正在研究 flask 項目。 項目結構如下:
├── project
│ ├── config.py
│ ├── __init__.py
│ ├── models.py
│ ├── main
│ ├── static
│ ├── templates
│ └── users
└── run.py
運行.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
模型.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 導入用戶或帖子時,它給了我錯誤:
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 時,我終於成功了。
我正在導入數據庫的初始目錄: /home/aman/Desktop/websites/project/project
給出錯誤。
現在,我正在導入的目錄 db: /home/aman/Desktop/websites/project
效果很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.