質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Pythonista

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

1415閲覧

ImportError: attempted relative import with no known parent packageが発生する

makoxti

総合スコア32

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Pythonista

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2022/03/18 16:26

PythonのFastAPIの勉強をしています。

OS

  • M1Mac

言語

  • Python

Framework

  • FastAPI

その他使用ツール

  • Docker
  • DBeaver

gitリポジトリ

やりたい事

  • 作成した.dbファイルにmodels.pyで定義したテーブルを作成したい
  • DBeaverで.dbファイルを開き、作成されたテーブル等を確認できるようにしたい

やったこと

  • Dockerを起動し、以下のコマンドでサーバーを起動
    • uvicorn code.blog.main:app --reload --no-access-log --port 8081
      • ※Makefileを作成しているので、make devコマンドで起動しています
  • 手動でmain.pyを実行
    • 以下のエラーが発生する

エラー内容

main.pyの2行目でエラーになります。
VSCode上は何もエラーになっていません。

ImportError: attempted relative import with no known parent package

schemas.pyはmain.pyと同階層にあります。

ファイル

main.py

1from fastapi import FastAPI 2from .schemas import Blog 3from .models import Base 4from .database import engine 5 6# テーブルを作成 7Base.metadata.create_all(bind=engine) 8 9app = FastAPI() 10 11 12@app.post("/blog") 13def create(blog: Blog): 14 return {"data": blog} 15

schemas.py

1from pydantic import BaseModel 2 3class Blog(BaseModel): 4 title: str 5 body: str 6

わかる方いらっしゃったらご教授いただけると幸いです。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

フォルダを作成してmodels.py等を移動させたら解決しました。

投稿2022/03/18 16:29

makoxti

総合スコア32

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問