SYS & Path


1.SYSとは?


1. sys module

  • Pythonは、複数のモジュールを統合してプロジェクトを生成します.開発者は、パッケージの作成、モジュールの追加、またはpipを使用して複数のパッケージを追加できます.pythonはモジュールとパッケージをどのように検索しますか?
  • import something

    2. search order


    sys.modules => built-in modules => sys.path

    2. sys.module vs sys.path


    1. sys.module

  • Pythonは、以下に示すようにdict形式で格納されるモジュールおよびパッケージを検索する最初の領域である.
  • Pythonを使用して複数回インポートすると、対応する領域に保存され、後でモジュールを検索して追加するのではなく、sysを直接使用します.モジュールを確認してインポートします.
  • 2. built-in modules

  • Pythonのインストール時に提供されるライブラリ
  • 3. sys.path

  • Pythonは最後にモジュールとパッケージを表示するエリアで、pip installにインストールされたモジュールもここで見つかります.sys.pathはlist形式で構成されており、モジュールまたはパッケージを単独で作成して使用する場合は、ここでpathを登録して
  • を使用することができます.

    4. how to find sys

    import sys
    print(sys)
    ----아래 결과----
  • の上のスクリーンショットを見て、sysは内蔵のモジュールです!したがって、build-inモジュールには
  • が見つかります.

    3.絶対パスvs相対パス


    pip installでインストールしたモジュールやパッケージでは、パスに関連する問題はめったに発生しません.しかし,個人が自作したモジュールやパッケージを使用する場合,経路の問題がしばしば発生する.

    1.絶対パス


  • absolute pathとは、プロジェクトの最上位フォルダから末尾まで明確に明記されたパスであり、ファイルの位置の変更が容易に変更される利点があるが、パスが比較的長い場合がある

  • 上のスクリーンショットではuserのmodlesです.pyにアクセスするために、
    my_app => user => models.py
    このように近づくべきだ.Pythonでは、項目の位置を除いて、以下のように経路を示します
    user.models.py
  • 2.相対パス


  • 相対パスは、最上位パスではなく現在の自分が属するパスに基づいて定義されます.

  • 上の図のモデル.pyからコアファイルにアクセスするには、
    ..core.something
    このように近づくことができます.
    を選択します.現在の場所よりも親ディレクトリに近いパス

    4. main.相対パスを持つpy




  • 上のmainpyで、相対パスを使用してadd and>乗算をインポートすると、次のエラーが発生します.


  • エラーの原因はmainモジュールで相対パスを使用している場合、自分が基準点(始点)としての位置が見つからないためですか?自分の位置を知らないと言ったのか?なんかX音はできるけど!モジュールの実行方法が分かれば、完全に理解できます.
    モジュールを実行する2つの方法
  • Vscodeから
  • を直接実行
  • を他のモジュールからインポート
    行きましょう.1つ目の場合、実行するモジュールの名前は自動的にmainに変更されます.potato.pyもmainになります
    私.モジュールが実行された後、別のモジュールが相対パスでインポートされた場合.
    Pythonはモジュール名(name)に基づいて現在のモジュールの位置を検索する
    多いです.mainに名前を変更したモジュールはPythonの位置が見つかりません.起点となる位置がわかりません.他のモジュールもインポートできません.
    引く.結論によるmainpyは絶対パスを使用してインポートする必要があります
  • 5. Conclusion


    Djangoを使ってウェブサイトを作った時、ずっと気になっていた部分.initこの段の尼は実はあなたにもあまり教えていないので、整理したり勉強したりするつもりはありません.ドラムの内容ではありません.Pythonの内容です.Pythonにはまだ不足がたくさんあります.この点はもっと理解しました.
    ブログを見てみると、本当にたくさんの技術ブログが整理されています.
    私も他の人から見ればきれいなブログを作りたいのですが、まだ自分の基準と明確な枠組みがありません...
    これも少しずつ発展すると信じて、私は引き続き努力します!!
    遅くても、はっきりしてから行きます.
    第1週水曜日

    🐍Tip🐍


    1. __init__

  • __init__.pyファイルの役割は、ディレクトリがパッケージの一部であることを示すことです.
  • にファイルがない場合は、パッケージとはみなされません.
  • 2. __all__

  • *を使用してインポートすると、ディレクトリのinitが使用されます.pyファイルでは、allでインポート可能モジュールを個別に定義する必要があります.