Python でサブディレクトリからファイルをインポートする方法: `__init__.py` が必要なのはなぜですか?

Susan Sarandon
リリース: 2024-11-19 18:37:03
オリジナル
816 人が閲覧しました

How to Import Files from Subdirectories in Python: Why Do I Need `__init__.py`?

サブディレクトリからのファイルのインポート

Python プログラミングの領域では、コードを効果的に編成することが不可欠です。サブディレクトリはモジュール性を維持するための優れた方法として機能しますが、これらのサブディレクトリからファイルをインポートする場合、予期せぬハードルに遭遇する可能性があります。

次のシナリオを考えてみましょう。/ に tester.py という名前のファイルがあるとします。プロジェクトディレクトリ。 /project ディレクトリ内には lib というサブディレクトリがあり、このサブディレクトリには BoxTime.py という名前の別のファイルが含まれています。目的は、BoxTime を tester.py スクリプトにインポートすることです。

インポート エラーが発生しました

最初のアプローチでは、次のコマンドを使用して BoxTime をインポートします。

import lib.BoxTime
ログイン後にコピー

ただし、この試みでは次のエラー メッセージが表示されます:

Traceback (most recent call last):
  File "./tester.py", line 3, in <module>
    import lib.BoxTime
ImportError: No module named lib.BoxTime
ログイン後にコピー

Undeterred, you search for a solution to Bridgeメイン スクリプトとサブディレクトリにあるファイルの間のギャップ。

謎の解明

解決策はパッケージのドキュメント (セクション 6.4) にあります。ドキュメントによると、Python では __init__.py という名前の空のファイルがサブディレクトリに存在する必要があります。

この例の場合、lib ディレクトリ内に空の __init__.py ファイルを作成する必要があります。この微妙な調整により、Python はサブディレクトリをパッケージとして認識できるようになり、ファイルをシームレスにインポートできるようになります。

したがって、__init__.py ファイルの重要性を見落とさないでください。これはゲートキーパーとして機能し、サブディレクトリからのファイルのインポートを容易にします。

追加の考慮事項

空の __init__.py ファイルを作成すると最初の問題は解決しますが、サブディレクトリからファイルをインポートするときに考慮すべき別の側面があります。サブディレクトリ。 Python では、モジュール名の前に lib.BoxTime などのディレクトリ パスを付ける必要があります。

または、次の構文を使用してモジュールにエイリアスを割り当てることもできます。

import lib.BoxTime as BT
ログイン後にコピー

This次のように、BT エイリアスを使用してモジュールを簡単に呼び出すことができます。 BT.bt_function().

これらのガイドラインに従えば、インポートの問題を克服し、サブディレクトリから Python プロジェクトへのファイルのシームレスな統合が保証されます。

以上がPython でサブディレクトリからファイルをインポートする方法: `__init__.py` が必要なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート