\section{\module{ni} ---
         None}
\declaremodule{standard}{ni}

\modulesynopsis{None}


\strong{警告: このモジュールは廃用 (obsolete) になっています。}  
Python 1.5a4 では、(\code{__init__} に対する別の意味付けを行い、
\code{__domain__} や \code{__} をサポートしない) パッケージサポート
がインタプリタに組み込まれていました。ni モジュールは以前のバージョン
との互換性のためだけに残されています。Python 1.5b2 では、この
モジュールは \code{ni1} に名称変更されました;
このモジュールが本当に必要なら、 \code{import ni1} を使うことが
できますが、推奨するアプローチは、既存のパッケージを必要に応じて変換
し、組み込みのパッケージサポートに依存することです。\code{ni}
と組み込みパッケージサポートを混在させても動作しません:
ひとたび \code{ni} をインポートすると、全てのパッケージがこの
モジュールを利用します。

\code{ni} モジュールでは、新たな import スキームを定義しています。
このスキームはいくつかの Python モジュールの入っているパッケージ
をサポートしています。パッケージサポートを有効にするには、
パッケージを import する前に \code{import ni} を実行します。
このモジュールを import すると、自動的に必要な import フックを
インストールします。\code{ni} モジュールには利用できる public な
関数や変数はありません。

サブモジュール \code{ham}、 \code{bacon}、および \code{eggs} が入っている
\code{spam} と名づけられたパッケージを作成するには、\code{sys.path} で
与えられる Python のモジュールサーチパス上のどこかにディレクトリ 
\file{spam} を作成します。次に、\file{ham.py}、\file{bacon.py}、
および \file{eggs.py} と呼ばれるファイルを \file{spam} ディレクトリの
中に作成します。

\code{ham} をパッケージ \code{spam} から import し、そのモジュールの
\code{hamneggs()} 関数を使うには、以下のどのやり方も使うことが可能です:

\begin{verbatim}
import spam.ham		# *not* "import spam" !!!
spam.ham.hamneggs()
\end{verbatim}
%
\begin{verbatim}
from spam import ham
ham.hamneggs()
\end{verbatim}
%
\begin{verbatim}
from spam.ham import hamneggs
hamneggs()
\end{verbatim}
%
\code{import spam} は \code{spam} という名前が存在しない場合、その名前
の空のパッケージを生成しますが、\code{spam} のサブモジュールを自動的に
import \emph{しません}。
import するよう保証されているサブモジュールは \code{spam.__init__} 
(があった場合) です; これは \file{spam} ディレクトリ下の
\file{__init__.py} と名づけられたファイルです。
\code{spam.__init__} がパッケージ spam のサブモジュールであることに
注意してください。spam の名前空間は \code{__} (二つのアンダースコア)
で参照することができます:

\begin{verbatim}
__.spam_inited = 1		# Set a package-level variable
\end{verbatim}
%
その他の初期化コード (変数の設定、他のサブモジュールの import)
は \file{spam/__init__.py} で行われます。

