「Pythonアプリケーションを起動する」の版間の差分

提供: tknotebook
移動: 案内、 検索
(→‎zipファイル内のファイルから起動する)
(→‎zipファイル内のファイルから起動する)
67行: 67行:
 
結局のところ、zipファイルはディレクトリとみなされ、
 
結局のところ、zipファイルはディレクトリとみなされ、
 
zipファイル内のファイルやディレクトリを指定して起動を行っているだけで、
 
zipファイル内のファイルやディレクトリを指定して起動を行っているだけで、
−
起動の様子は'''「[[#スクリプトファイルを指定して起動する|スクリプトファイルを指定して起動する]]」'''
+
起動の様子は'''「[[#スクリプトファイルを指定して起動する|スクリプトファイルを指定して起動する]]」'''や
 +
'''「[[#ディレクトリを指定して起動する|ディレクトリを指定して起動する]]」''' と同じです。

2026年10月9日 (金) 14:02時点における版

メインページ>コンピュータの部屋#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 は java の jarファイル からの起動に似たやり方で zipで固められたアプリを起動できます。

python <zipファイル名のパス>/<zip内ファイルのパス>

python は zipファイルをディレクトリと同様に扱い、zipファイル内のファイルをスクリプトとして起動します。 但し、起動されたコードから、zipファイル内の他のモジュールやパッケージを import はできますが、zip内のファイルに アクセスするには zip のファイルを閲覧するライブラリを使う必要が有ります。

python <zipファイル名のパス>/<zip内ディレクトリのパス>

で起動した場合は、zipファイル内に <zip内ディレクトリのパス> が存在し、 <zip内ディレクトリのパス> が指定するディレクトリ内に __main__.py が存在していることが必要です。

また、

python <zipファイル名のパス>

という形式の起動では、zipファイル内のトップに __main__.py ファイルが存在していると起動できます。

結局のところ、zipファイルはディレクトリとみなされ、 zipファイル内のファイルやディレクトリを指定して起動を行っているだけで、 起動の様子は「スクリプトファイルを指定して起動する」や 「ディレクトリを指定して起動する」 と同じです。