Modules & Packages
3643 ワード
Modules?
Pythonで変数、関数、クラスなどのファイルを収集します.
理由は.コードが大きすぎると、他のファイルで繰り返し使用できません.
このようにして作成されたモジュール
import <modeule name>
使えばいいです.しかし、モジュールのサイズが大きすぎて、モジュールで特定の関数を使用するだけで、from <module name> import <fuction name>
をクリックしてインポートします.Packages?
moduleと同様に、他のファイルからロードおよび使用されるコード、またはmoduleよりも複雑なコードです.
これでfrom core import model
coreというパッケージのモデルモジュールからインポートし、他のPythonファイルで使用できます.
このパッケージの概念はLibraryと言える.このクラスは以下の通りである.
Python標準ライブラリ:インストールなしで使用できるパッケージ(ex.time、sys、os)
Pythonインストールパッケージ:インストール後に使用するパッケージ(Ex.Django,Beautifulsgroup)
ユーザーが作成したパッケージ
1. sys.modules
2. built-in modules
3. sys.path
1. sys.modules
2. built-in modules
3. sys.path
sys.pathはstring Valueのlistであり、packageのinit変数などである.
/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9
似たような要素が表示された場合は、それぞれパスが表示されます.
インポートするパッケージがパスにあることを確認します.
上の順番でPythonはsysです.modules -> built-in modules -> sys.pathでmoduleとpakageを検索し、sysします.pathにもない場合は、モジュールが見つからないerrを返します.
sys.モジュールとシステム。パスの違いは?
Pythonはsysmoduleをどのように位置決めしますか?
sysの表示:
見えます.
すなわちsysはbuild-inモジュールパスをインポートするので、他のパスを別途書く必要はありません.
Absolute pathと相対path
sysなどの内蔵パッケージやpipでインストールされたDjangoなどのパッケージを直接インポートできます.
ただし、localpackageを開発した場合は、そのpackageの場所に基づいてディレクトリパスを正しく宣言する必要があります.
たとえば、上記のパスでtestというディレクトリのpackage 1のcalculaterというモジュールにaverageという関数をインポートする場合は、
from test.package1.calculater import average
このコードで書けばいいこの経路をAbsolute Pathと呼ぶ.
ただし、上のディレクトリよりも複雑なパスであれば、パスが長すぎます.
このときはRelative Pathを使用します.
相対パスは、最上位のファイルではなくimport機能を使用する現在の場所に基づいています.
たとえばpackage 1>calculaterからcal 2モジュールの関数をインポートする場合は、
現在のパスはpackage 1にあります.
from .package2.cal2 import function
これでコードを書けばいい後ろから.(点記号)は現在の位置を表します.今は自分で包装を作ります
Reference
この問題について(Modules & Packages), 我々は、より多くの情報をここで見つけました https://velog.io/@jake93/Py-Modules-Packagesテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol