2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python の import 時にでた [ ImportError: attempted relative import with no known parent package ] の解決策

Last updated at Posted at 2024-07-18

はじめに

importしようとしたところ、ImportError: attempted relative import with no known parent packageのエラーがでて、意外な方法で解決できたので紹介

今回起きた現象

project/
  │
  ├─ a_package/
  │       ├─ A.py
  │
  ├─ b_package/
          ├─ B.py

上記のディレクトリ構造の時、A.pyからB.pyのクラスをimportしたかった。

相対パスでimportしようとすると下記のようになります。

# A.py

from ..b_package.B import B_class

しかし... こんなエラーがでてしまう...

ImportError: attempted relative import with no known parent package

解決策

import os
import sys
sys.path.append(os.getcwd())

from b_package.B import B_class

これでimportできました。


これで動く理由

sys.pathには、Pythonインタプリタがモジュールを検索するディレクトリのパスが格納されています。
そこに、projectのディレクトリを追加(append)することによって、import時に、project直下も検索するようになってくれる。

という理屈だと思います...多分...

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?