カスタムパッケージパイソンのインポートおよび使用

 https://blog.csdn.net/maryhuan/article/details/22048763

内蔵モジュール内蔵のPythonでの関数を介して見ることができる「DIR(__ builtins__)」

パッケージ(パッケージ)は、モジュールタイプは、タイプのモジュールで実際にあります。:一般的にカスタムモジュールを参照する2つの方法があります
1)と同じディレクトリにある2つのファイルが。
2)のsys.pathで参照ファイルPYへのパスを追加します。次に、インポートします。
このアプローチは、ファイルの数が少ないために実現可能であるが、多くの手順多く、非常に複雑な階層が多くのトラブルの場合。この時点では、同一の参照、サードパーティ製のパッケージと同様に、一緒にパッケージして、よりPYファイルを整理することができるようになります。多くの方が簡単に。

同じパッケージとプログラムのディレクトリ階層の階層、そしてそれは__init__.pyファイルが含まれている必要があります。__init__.pyは、それがこのディレクトリには、パッケージの契約として使用されていることを示すために存在しているように、空にすることができます。

パッケージ1 /
       __init__.py
       subPack1 /
               __init__.py
               module_11.py
               module_12.py
               module_13.py
      subPack2 /
               __init__.py
               module_21.py
               module_22.py
......

__init__.pyは、それが存在するとして、それはこのディレクトリのようになる必要があることを示し、空にすることができますパッケージの契約。もちろん、__対応するコンテンツを提供することができるinit__.pyに。
:まあ、今はmodule_11.pyで関数定義

)DEFフナを(:
「module_11でてfuncA」の印刷が
返す


リファレンスモジュールを。
最上位のディレクトリで(すなわちパッケージ1は、当然のことながら、上記の説明を参照してくださいディレクトリ、パッケージ1インタプリタ上)の場所を検索するのPythonを実行することができ:

package1.subPack1.module_11インポートてfuncAから>>>
>>>てfuncA()
てfuncAがmodule_11に

このように、我々はパッケージの階層に従って、正しくmodule_11で関数を呼び出します。


IIは、ワイルドカード*を使用してのモジュールのすべての要素をインポート
__init__.pyでの回答嘘を。私たちは、subPack1に__init__.pyファイルを書き込む

__all__ = [ 'module_13'、 ' module_12']

当時と入力してPythonの
package1.subPack1インポートから>>> *
>>> module_11.funcA()
トレースバック(最新の結果ラストコール):
内のファイル「」、1行目、
はImportError:いいえモジュールの名前module_11

言い換えれば、*インポートするためには、パッケージ内のモジュールは、__init__の対象となります。PY制限。

インテリアパッケージ3.お互いを呼び出します。
1.あなたはモジュールで同じパッケージを起動したい場合は、直接インポートすることができます。言い換えれば、module_12.py、あなたが直接使用することができます
インポートmodule_11

同じパッケージで、例えば、我々はFUNCAコールmodule_21.pyにmodule_11.pyしたくない場合は2を、あなたはこれが好きでなければならない:
module_11パッケージ名.module_11から輸入てfuncA

我々が定義されたモジュール?見つける方法4 .Python
標準パッケージでは、path属性は、Pythonのパッケージパスを記録し、SYS。
SYSインポート
印刷(のsys.path)
我々は通常モジュールパッケージパスPYTHONPATH環境変数に配置することができますが、変数は自動的に環境のsys.path属性に追加されます。
もう一つの便利な方法は、当社のダイレクト・パス・モジュールのプログラミングに指定されています内のsys.pathへ。
一般的に使用される言葉はpython27 \ libに\のsite-packagesフォルダを配置することができます。

----------------
免責事項:この記事は元の記事CSDNブロガー「Maryhuan」で、CC 4.0 BY-SAの著作権契約書に従って、元のソースのリンクと、この文を添付してください、再現。 。
オリジナルリンクします。https://blog.csdn.net/maryhuan/article/details/22048763

おすすめ

転載: www.cnblogs.com/jodyccf/p/11906768.html