「Pythonアプリケーションを起動する」の版間の差分
(→zipファイル内のファイルから起動する) |
(→zipファイル内のファイルから起動する) |
||
| 52行: | 52行: | ||
python <zipファイル名のパス>/<zip内ファイルのパス> | python <zipファイル名のパス>/<zip内ファイルのパス> | ||
| − | python は | + | では python は '''zipファイルをディレクトリと同様に扱い'''、'''zipファイル内のファイルをスクリプトとして起動します'''。 |
| − | + | 起動されたコードから、zipファイル内の他のモジュールやパッケージを import はできますが、zip内のファイルに | |
アクセスするには zip のファイルを閲覧するライブラリを使う必要が有ります。 | アクセスするには zip のファイルを閲覧するライブラリを使う必要が有ります。 | ||
| 59行: | 59行: | ||
で起動した場合は、zipファイル内に <zip内ディレクトリのパス> が存在し、 | で起動した場合は、zipファイル内に <zip内ディレクトリのパス> が存在し、 | ||
| − | <zip内ディレクトリのパス> が指定するディレクトリ内に __main__.py | + | <zip内ディレクトリのパス> が指定するディレクトリ内に '''__main__.py''' が存在していることが必要で、 |
| + | python は __main__.py のモジュールレベルのコードを起動します。 | ||
また、 | また、 | ||
| 69行: | 70行: | ||
起動の様子は'''「[[#スクリプトファイルを指定して起動する|スクリプトファイルを指定して起動する]]」'''や | 起動の様子は'''「[[#スクリプトファイルを指定して起動する|スクリプトファイルを指定して起動する]]」'''や | ||
'''「[[#ディレクトリを指定して起動する|ディレクトリを指定して起動する]]」''' と同じです。 | '''「[[#ディレクトリを指定して起動する|ディレクトリを指定して起動する]]」''' と同じです。 | ||
| + | __name__変数や sys.path のPATH追加は同じなので、 | ||
| + | 「[[#スクリプトファイルを指定して起動する|スクリプトファイルを指定して起動する]]」'''や | ||
| + | '''「[[#ディレクトリを指定して起動する|ディレクトリを指定して起動する]]」'''を参照してください。 | ||
2026年10月9日 (金) 14:07時点における版
メインページ>コンピュータの部屋#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 は __main__.py のモジュールレベルのコードを起動します。
また、
python <zipファイル名のパス>
という形式の起動では、zipファイル内のトップに __main__.py ファイルが存在していると起動できます。
結局のところ、zipファイルはディレクトリとみなされ、 zipファイル内のファイルやディレクトリを指定して起動を行っているだけで、 起動の様子は「スクリプトファイルを指定して起動する」や 「ディレクトリを指定して起動する」 と同じです。 __name__変数や sys.path のPATH追加は同じなので、 「スクリプトファイルを指定して起動する」や 「ディレクトリを指定して起動する」を参照してください。