Python/Flask ImportError: attempted relative import with no known parent package
Python/Flask ImportError: attempted relative import with no known parent package
我在我的 Flask 应用程序中将 运行 保留在这个 ImportError
中,但并不真正理解为什么会这样:
server | Traceback (most recent call last):
server | File "/app/app.py", line 9, in <module>
server | from .models import db, Properties, Usage
server | ImportError: attempted relative import with no known parent package
在 app.py
我有以下内容:
from .models, import db
from . import config
APP = flask.Flask(__name__)
cors = CORS(APP)
APP.config['SQLALCHEMY_DATABASE_URI'] = config.DATABASE_CONNECTION_URI
APP.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
APP.app_context().push()
db.init_app(APP)
db.create_all()
我的文件树如下所示:
|- server
|
|- app.py
|- config.py
|- models.py
config.py
看起来像:
import os
user = os.environ['POSTGRES_USER']
password = os.environ['POSTGRES_PASSWORD']
host = os.environ['POSTGRES_HOST']
database = os.environ['POSTGRES_DB']
port = os.environ['POSTGRES_PORT']
DATABASE_CONNECTION_URI = f'postgresql+psycopg2://{user}:{password}@{host}:{port}/{database}'
我应该怎么做才能解决这个问题?
编辑:忘了说,我正在使用 docker-compose.yml
文件来构建我的数据库(以及我的应用程序的其余部分):
version: "3.9"
services:
server:
container_name: server
build: ./server
ports:
- "80:5000"
volumes:
- ./server:/app
environment:
FLASK_ENV: development
env_file:
- ./.env
web:
build: ./app
ports:
- "3000:3000"
volumes:
- ./app:/user/src/app
depends_on:
- server
database:
container_name: postgres
image: postgres:latest
env_file: ./server/database.conf
ports:
- 5432:5432
volumes:
- db_volume:/var/lib/postgresql
volumes:
db_volume:
一个简单的错误:它将是:
from models import db
import config
APP = flask.Flask(__name__)
cors = CORS(APP)
APP.config['SQLALCHEMY_DATABASE_URI'] = config.DATABASE_CONNECTION_URI
APP.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
APP.app_context().push()
db.init_app(APP)
db.create_all()
我在我的 Flask 应用程序中将 运行 保留在这个 ImportError
中,但并不真正理解为什么会这样:
server | Traceback (most recent call last):
server | File "/app/app.py", line 9, in <module>
server | from .models import db, Properties, Usage
server | ImportError: attempted relative import with no known parent package
在 app.py
我有以下内容:
from .models, import db
from . import config
APP = flask.Flask(__name__)
cors = CORS(APP)
APP.config['SQLALCHEMY_DATABASE_URI'] = config.DATABASE_CONNECTION_URI
APP.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
APP.app_context().push()
db.init_app(APP)
db.create_all()
我的文件树如下所示:
|- server
|
|- app.py
|- config.py
|- models.py
config.py
看起来像:
import os
user = os.environ['POSTGRES_USER']
password = os.environ['POSTGRES_PASSWORD']
host = os.environ['POSTGRES_HOST']
database = os.environ['POSTGRES_DB']
port = os.environ['POSTGRES_PORT']
DATABASE_CONNECTION_URI = f'postgresql+psycopg2://{user}:{password}@{host}:{port}/{database}'
我应该怎么做才能解决这个问题?
编辑:忘了说,我正在使用 docker-compose.yml
文件来构建我的数据库(以及我的应用程序的其余部分):
version: "3.9"
services:
server:
container_name: server
build: ./server
ports:
- "80:5000"
volumes:
- ./server:/app
environment:
FLASK_ENV: development
env_file:
- ./.env
web:
build: ./app
ports:
- "3000:3000"
volumes:
- ./app:/user/src/app
depends_on:
- server
database:
container_name: postgres
image: postgres:latest
env_file: ./server/database.conf
ports:
- 5432:5432
volumes:
- db_volume:/var/lib/postgresql
volumes:
db_volume:
一个简单的错误:它将是:
from models import db
import config
APP = flask.Flask(__name__)
cors = CORS(APP)
APP.config['SQLALCHEMY_DATABASE_URI'] = config.DATABASE_CONNECTION_URI
APP.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
APP.app_context().push()
db.init_app(APP)
db.create_all()