Pythonプロジェクトでは、次のようなディレクトリ構造がありました。
my_project
|_
...
dirA
|_
__init__.py
scriptA.py
dirB
|_
__init__.py
scriptB.py
...
(のは空です)の中に、私は持っています__init__.py
:dirA
__init__.py
dirB
import os
import glob
__all__ = [os.path.basename(f)[:-3] for f in glob.glob(os.path.dirname(os.path.abspath(__file__)) + "/*.py")]
内部scriptB.py
では、私はします:
from dirA import *
そして、インポートを利用する後続のコードは正常に機能します。
次に、プロジェクト全体(異なるプロジェクトディレクトリ名:)my_project_new
を古いディレクトリと同じディレクトリにコピーして貼り付け、scriptA.py
この新しく複製されたディレクトリのコードを変更し始めます。(注:のディレクトリ構造はmy_project_new
上記とまったく同じです)。
変更を加えた後、を実行しようとしましたscriptB.py
が、現在のディレクトリではなく、元のディレクトリからインポートし続けていることがmy_project_new
わかりました。どうしてこれなの?dirA
my_project
dirA
my_project_new
さらに、元のmy_project
フォルダを別の場所に移動してscriptB.py
、my_project_new
もう一度実行しようとしました。dirA
その後、完全に識別できませんでした。今何が起こっているのですか?