IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

ゼロから歩くPythonの道

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第51回 コマンドラインを使わずにPythonプログラムを実行する方法 (菱沼佑香) 2024年5月

こんにちは、吉政創成 菱沼です。
今回も「きれいなPythonプログラミング(マイナビ出版)」という書籍を利用して学習します。

さて、いまは2章の「環境設定とコマンドライン」を学習中です。
前回、環境変数とPATHについて学習しました。
今回はコマンドラインを使わずにPythonプログラムを実行する方法について学びます。

ダブルクリックで.pyファイルは実行できない

さぁ、プログラムを作ったぞ!動かすぞ!!となったとき、基本的にIDLEなどのエディタで走らせて動作を確認する人がほとんどだと思います。
その後、例えばデスクトップにとりあえず置いた.pyファイルを、ダブルクリックで実行させようとしたことある人いませんか。はい、ここにいまーす。

---------------------------------------------------------------
P.42
多くの場合、.pyファイルをダブルクリックすると、Pythonプログラムが実行されるのではなく、エディタやIDEで開かれます。また、Pythonを直接実行しようとすると、Pythonのインタラクティブシェルを開くだけになります。Pythonプログラムを実行するには、IDEで開いてRunメニューオプションをクリックするか、コマンドラインで実行するのが一般的です。どちらの方法も、単にPythonプログラムを起動したいだけなら、面倒なものです。
このような面倒な手順を踏まず人、インストールしたほかのアプリケーションと同じようにPythonプログラムをOSのランチャーから簡単に実行できるように設定することができます。
---------------------------------------------------------------

GUIに慣れた脳みそ持ちの身からしたら、はじめてプログラムを作って、デスクトップにあるファイルをダブルクリックしたら実行されると思うではありませんか。ええ。なのに、一瞬で消えた黒い画面っぽいものの残像を前に、え?黒い画面どこいった?と、驚きつつ、エディタから開きなおしたあの日が思い出されます。
さてそんな問題をクリアにする方法です。

バッチファイルを作ってPythonプログラムを実行してみる

エディタで開けばいいじゃない。
それはそうですし、個人的に慣れたので、そう面倒にも思わない動作なのですが、作ったものによってはアイコンをダブルクリックする方法で実行できるのがベストという事もあると思います。連続して処理するようなものとか。
今回学ぶ方法はバッチファイルというものを作って行う方法のようです。

---------------------------------------------------------------
P.42
WIN+Rキーを押して[ファイル名を指定して実行]ダイアログを開き、図2-7に示すようにpy c:\path\to\yourScript.pyと入力します。py.exeプログラムはC:\Windows\py.exeにインストールされ、環境変数PATHにすでに入っています。また、プログラムを実行する際の.exeというファイル拡張子は任意です。

fig01

しかし、この方法では、スクリプトのフルパスを入力する必要があります。また、プログラムの出力を表示するターミナルウィンドウは、プログラムが終了すると自動的に閉じてしまうので、出力を見逃してしまうこともあります。
この問題にはバッチスクリプトで対応することができます。バッチスクリプトは、macOSやLinuxのシェルスクリプトのように、複数のターミナルコマンドを一度に実行できる拡張子.batのテキストファイルのことです。このファイルは、メモ帳などのテキストエディターで作成できます。
(中略)
@py.exe C:\path\to\yourScript.py %*
@pause

パスの部分をプログラムの絶対パスに置き換え、このファイルを.batという拡張子で保存します。各コマンドの先頭にある@記号はターミナルウィンドウに表示されないようにし、%*はバッチファイル名の後に入力されたコマンドライン引数をPythonスクリプトに転送します。Pythonスクリプトは、今度はsys.argvリストの中のコマンドライン引数を読み込みます。個のバッチファイルを使えば、Pythonプログラムを実行する度に、Pythonプログラムの完全な絶対パスを入力する必要がなくなります。@pauseコマンドは、プログラムのウィンドウがすぐに消えてしまわないように、Pythonスクリプトの最後にpress any key to continue...と表示されます。
バッチファイルや.pyファイルはすべて環境変数PATHにパスが通っている同じフォルダー内に置いておくことをおすすめします。例えば、C:\Users\<ユーザー名>のホームフォルダーなどです。バッチファイルがセットアップされていれば、WIN+Rキーを押し、バッチファイルの名前を入力して(拡張子.batの入力は任意)、ENTERキーを押すだけでPythonプログラムを実行することができます。
---------------------------------------------------------------パ

というわけで、C:\Users\(ユーザー名)\test2024の中に、yourScript.batファイルを保存し、.pyファイルも同じフォルダに入れてみました。バッチファイルは以下のように書き換えています。

fig02

その後、バッチファイルをダブルクリックしてみると、実行できました。

fig03

ちなみにファイルをこのように二つ指定すると...

fig04

二つ分の.pyファイルの結果が続けて表示されます。

fig05

macOSとLinuxでPythonプログラムを実行する方法は?

さて、Windowsの次はmacOSやLinux。環境がありませんので、テキストから必要な場所だけまとめます。

macOSの場合

拡張子が.commandのテキストファイルでシェルスクリプトを作れるそうです。ファイルには以下を記述します。ファイルの保存場所やパスの指定の仕方はWindowsと同様です。
#!/usr/bin/env bash
Python3 /path/to/yourScript.py
ターミナルウィンドウでchmod u+xyourScript.commandを実行すると、シェルスクリプトが実行可能な状態になるので、その後、Spotlightアイコンをクリック(COMMAND+SPACEキー)し、シェルスクリプトのファイル名を入力すると実行できるとのこと。

Linuxの場合

ホームフォルダーにある.pyファイルの1行目に、ファイルを実行するときにpython3を使うことを指定する、以下の文言を記述します。
#!/usr/bin/env python3
その後、ターミナルから以下のchmodコマンドを実行して、ファイルの実行権限を追加します。
al@al-VirtualBox:~$ chmod u+x yourScript.py
こうすると、新しいターミナルウィンドウ(CTRL+ALT+Tキー)から、カレントディレクトリにある./yourScript.pyを指定して実行してあげればスクリプトが動くそうです。

さて、これで2章が終了しました。
この章では今まであまりお世話になったことのなかったコマンドラインの使い方を学ぶことができました。また、知らなった環境変数やPATHの存在理由や必要性などを理解できたように思います。
コマンドは覚えることが本当にたくさんあるので、必要に応じて徐々に身に着けていきたいです。

それではこちらで終了です。
次回から3章に入りますが、ここではコードフォーマットという、コードをキレイに整える方法を学んでいくようです。
今回もお付き合いいただきありがとうございました。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes