我对编程还很陌生。 我正在使用 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/