gpt4 book ai didi

python - 无法执行相对导入(flask/pycharm)

转载 作者:太空宇宙 更新时间:2023-11-03 17:25:53 24 4
gpt4 key购买 nike

我对编程还很陌生。我正在使用 Pycharm IDE 和 Flask 框架。我现在正在尝试使用 SQLAlchemy,当我尝试运行查询(db_create.py)以在数据库中添加内容时,它返回“SystemError:父模块''未加载,无法执行相对导入”。

根据我在互联网上收集的信息,这似乎是 Pycharm 问题,但我不太明白如何解决它。

请问有人有想法吗?

作为引用,我的项目结构如下(pjctBB 应制成表格,因为它是 pjctMain 的一部分)。

非常感谢您花时间阅读本文并帮助我解决问题。提前致谢!

pjctMain
├── run.py
pjctBB
├── __init__.py
├── models.py
├── views.py
├── pjctbb_sg.db
└── db_create.py

我的run.py:

from pjctBB import app
import os

app.secret_key = os.urandom(24)
app.run(debug=True)

我的init:

from .views import app
from .models import *

我的 models.py 包含以下内容:

from .views import db


class User(db.Model):

__tablename__ = "users"

id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String, nullable=False)
username = db.Column(db.String, nullable=False)
password = db.Column(db.String, nullable=False)
rank = db.Column(db.Integer, nullable=False)

def __init__(self, email, username, password, rank):
self.email = email
self.username = username
self.password = password
self.rank = rank

我的(部分)views.py 具有以下内容:

from flask import Flask, \
render_template, request, redirect, url_for, session, flash, json
# from .models import register1
import os
from flask_sqlalchemy import SQLAlchemy
#import sqlite3


#from passlib.hash import bcrypt
from functools import wraps

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///pjctbb_sg.db'

# Create SQLAlchemy object
db = SQLAlchemy(app)

最后,我的 db_create.py:

from .views import db
from .models import User

db.create_all()

db.session.add(User("test@test.com", "test", "000000", "50"))

db.session.commit()

最佳答案

按照你的方式做,我得到这个 ValueError:

Traceback (most recent call last):
File "__init__.py", line 1, in <module>
from .test import Chris

取出测试前面的 . 对我来说很有效。

或者

root   
pjct
├── pjctBB
├── __init__.py
├── models.py
├── views.py
├── pjctbb_sg.db
└── db_create.py
├── setup.py

setup.py 所在位置:

from setuptools import setup, find_packages

if __name__ == "__main__":
setup(
name = "pjctBB",
packages = find_packages(),
version = "0.1.0"
)

并且python setup.pydevelop允许您通过

导入
from pjctBB.models import *
from pjctBB.views import *

关于python - 无法执行相对导入(flask/pycharm),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32557686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com