Pythonアプリケーションを起動する
メインページ>コンピュータの部屋#Python>Python Tips
目次
はじめに
python でアプリケーションを起動するのに最も単純な方法は
python <pythonスクリプトファイルのパス>
でしょう。基本の基本です。
しかし、pythonにはアプリケーションを起動するための様々な方法が用意されています。この記事では、pythonでスクリプトを起動するためのいくつかの方法を紹介します。
スクリプトファイルを指定して起動する
既に「はじめに」で紹介した通り、アプリケーションは
python <pythonスクリプトファイルのパス>
で起動できます。
<pythonスクリプトファイルのパス>のファイルのモジュールレベルのコードが起動されます。起動されるモジュールにローカルな __name__ 変数は "__main__" に設定されます。
sys.path には <pythonスクリプトファイルのパス> のディレクトリが追加されます。
注意
sys.path にはアプリケーションのモジュールやパッケージのトップディレクトリが追加されないとモジュールやパッケージの検索がおかしくなります。 <pythonスクリプトファイルのパス> のディレクトリにはモジュールやパッケージのトップディレクトリを指定しましょう。
ディレクトリを指定して起動する
アプリケーションを
python <ディレクトリのパス>
で起動できます。
<ディレクトリのパス>に__main__.py が無ければ
python.exe: can't find '__main__' module in <ディレクトリのパス>
とエラーが表示されて実行できません。
<ディレクトリのパス>に__main__.py が有れば、__main__.py のモジュールレベルのコードが起動されます。 起動される__main__.pyにローカルな __name__ 変数は "__main__" に設定されます。
sys.path には <ディレクトリのパス> が追加されます。
注意
sys.path にはアプリケーションのモジュールやパッケージのトップディレクトリが追加されないと モジュールやパッケージの検索がおかしくなります。 <ディレクトリのパス>にはモジュールやパッケージのトップディレクトリを指定しましょう。
zipファイル内のファイルから起動する
python はzipで固められたアプリを起動できます。 やり方は簡単で、zipファイルをディレクトリであるかのようにして、zipファイル内のファイルを指定します。
python <zipファイル名のパス>/<zip内ファイルのパス>
起動されるコードから、zipファイル内の他のモジュールやパッケージを普通に import できます。 でも、zip内の他のファイルにアクセスするには zip 内のファイルを閲覧するライブラリを使う必要が有ります。
python <zipファイル名のパス>/<zip内ディレクトリのパス>
で起動した場合は、zipファイル内に <zip内ディレクトリのパス> が存在し、 <zip内ディレクトリのパス> が指定するディレクトリ内に __main__.py が存在していることが必要です。 python は __main__.py のモジュールレベルのコードを起動します。
また、
python <zipファイル名のパス>
という形式の起動では、zipファイル内のトップに __main__.py ファイルが存在している必要が有ります。 この __main__.py が起動されます。
結局のところ、zipファイルはディレクトリとみなされ、 zipファイル内のファイルやディレクトリを指定して起動を行っているだけで、 起動の様子は「スクリプトファイルを指定して起動する」や 「ディレクトリを指定して起動する」 と全く同じです。 __name__変数や sys.path へのディレクトリの追加や注意も同じなので、 「スクリプトファイルを指定して起動する」や 「ディレクトリを指定して起動する」を参照してください。
パッケージのエントリポイントを実行する
アプリケーションがパッケージとして pythonランタイムや仮想環境にインストールされている場合、 アプリケーションをコマンドで起動できます。