[解決済み] Pythonにおける循環的なインポート依存性
2023-04-19 11:48:22
質問
以下のようなディレクトリ構造になっているとします。
a\
__init__.py
b\
__init__.py
c\
__init__.py
c_file.py
d\
__init__.py
d_file.py
の中で
a
パッケージの
__init__.py
を使用することで
c
パッケージがインポートされます。しかし
c_file.py
はインポートされます。
a.b.d
.
プログラムは次のように失敗します。
b
が存在しないのに
c_file.py
をインポートしようとすると
a.b.d
. (そしてそれは本当に存在しません。なぜなら私たちはそれをインポートしている最中だったからです)。
この問題はどうすれば改善されるのでしょうか?
どのように解決するのですか?
aがcに依存し、cがaに依存する場合、それらは実は同じ単位ではないのでしょうか?
なぜ a と c をふたつのパッケージに分けたのかをよく調べてみてください。なぜなら、別のパッケージに分割すべきコードがあるか (両方を新しいパッケージに依存させ、お互いに依存しないようにするため)、あるいはそれらをひとつのパッケージに統合すべきかのどちらかだからです。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pythonで相対インポートを行うには?
-
[解決済み] Pythonにおける循環的なインポート
-
[解決済み] Pythonで循環インポートを回避する方法は?[重複しています]。
-
[解決済み] 前月の日時オブジェクトを返す
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] Pythonの要素別タプル演算(sumなど
-
[解決済み] Pythonのインスタンス変数とクラス変数
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] tensorflowのCPUのみのインストールでダイナミックライブラリ 'cudart64_101.dll' を読み込めなかった
-
[解決済み] Alembicアップグレードスクリプトでインサートやアップデートを実行するにはどうすればよいですか?