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

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

研修コース検索

コラム

ゼロから歩くPythonの道

CTC 教育サービス

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

第46回 Pythonプログラム(.py)をコマンドラインで実行する方法とLauncherの存在 (菱沼佑香) 2023年11月

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

さて、いまは2章の「環境設定とコマンドライン」を学習中です。
前回は絶対パス・相対パスについてと、コマンドラインの中から今いるディレクトリの変更方法を確認しました。
今回も引き続きコマンドライン関係として、Pythonをコマンドラインで実行する方法を学びます。

インタラクティブモードと同じことをコマンドラインでやってみた

保存したPythonのプログラムを実行するには、エディタから実行してもいいと思いますが、コマンドラインで実行することもできるそうです。
まずはPythonを保存せずに実行する方法。

-----
P.26、27
一度だけ実行して終わりの、保存するほどでもないようなちょっとしたPythonコードを実行したい場合は、Windowsのpython.exeやmacOSやLinuxのpython3にオプションとして-cを渡します。実行したいコードは、-cスイッチの後にダブルクォートで囲んで記述します。例えば、ターミナルウィンドウに次のように入力します。


python -c "print(’hello, world’)"
hello, world

-cオプションは、単一命令の結果を見たいとき、インタラクティブシェルを起動する時間を無駄にしたくない時に便利です。例えば、help()関数の出力を素早く表示してからコマンドラインに戻ることができます。


python -c "help(len)"
Help on built-in function len in module builtins:
len(obj, /)
    Return the number of items in a container.
--------

IDLEのインタラクティブモードで入力するでもいいのでは?と思ったりしますが、きっと素人にはわからない理由があるんです。きっと。ちなみに実際にコマンドラインで実行してみたのがこちらの画面。ついでにIDLEのインタラクティブモードで入力したものも載せておきます。

fig01

同じ結果ですね。
ちなみに、pythonと入力するだけでもPythonを起動できるそうです。例えばこんな感じ。

fig02

...インタラクティブモードじゃだめなんだろうか。

コマンドラインで,[.py]ファイルを実行してみる。

さて次に、保存されたPythonプログラム(拡張子が.py)の実行方法です。

-----
P.27
Pythonプログラムは、.pyというファイル拡張子を持つテキストファイルです。実行ファイルではなく、Pythonインタープリターがこれらのファイルを読み込んで、その中の命令を実行します。インタープリターの実行ファイルは、Windowsではpython.exe、macOSやLinuxではpython3です(pythonはPython2のインタープリターになっています)。python yourScript.pyまたはpython3 yourScript.pyというコマンドを実行すると、yourScript.pyという名前のファイルに保存されているPython命令が実行されます。
------

2018年ころにmacにデフォルトでPython2をインストールするのはやめるみたいな話があったような気がしつつ、今はどうなっているのかわかりませんが、とりあえず、macを利用されている方は実行時にどちらのバージョンで実行しているか確認が必要ですね、ということですね。
さて、ここで書かれているpy.exeを使用してみる前にコマンドラインから実行する方法をやってみます。

py.exeを使わないコマンドライン実行

デスクトップに保存したPythonプログラムのパスをまず確認します。

fig03

ディレクトリを確認したところで、コマンドラインでカレントディレクトリを、ファイルが保存されているディレクトリに変更して実行してみます。実行するには[py ファイル名.py]です。カレントディレクトリの変更は[cd]です。振り返りたい方は前回のコラムをご確認ください。

fig04

ということで、問題なく実行されました。

py.exe(Python Launcher)を使ってコマンドライン実行

py.exe(=Launcher:ランチャー)は、Python3.3から追加された機能で、Windows向けに提供されている機能です。
Pythonを使う人の中には、ライブラリの対応バージョンの違いや使用しているプログラムが新バージョンで動かなかったことがあったときなどの必要に応じて、複数のPythonのバージョンを共存させていることがあるそうなのですが、ランチャーがあると、複数のPython環境の使い分けが容易になるのだそうです。
(ちなみに共存できるのはマイナーバージョンです。→例:3.9.xと3.8.xは共存できるが、3.9.8と3.9.7は共存できない)
ということで、ここでテキストの説明文です。

-----
P.27
WindowsではC:\Windowsフォルダーにpy.exeプログラムがインストールされます。このプログラムはpython.exeと同じですが、コンピューターにインストールされているすべてのPythonバージョンを実行できる追加のコマンドライン引数を受け取ります。環境変数PATHにC:\Windowsフォルダーが含まれているので、どのフォルダーからでもpyコマンドを実行することができます。複数のPythonバージョンがインストールされている場合、pyを実行すると自動的にコンピューターにインストールされている最新バージョンが実行されます。コマンドライン引数に-3や-2を渡すと、それぞれインストールされている最新のPython3やPython2を実行するk十ができます。また、-3.6や-2.7など、より具体的なんバージョン番号を指定して実行することもできます。バージョンを切り替えた後は、python.exeと同じようにコマンドライン引数を渡すことが出来ます。
-----

使い方としては、[py -(バージョン)]と書くとのこと。
ところで、自分のPCにどのバージョンがインストールされているか、確実に忘れる!という私同様うっかりさんはいらっしゃいますか。Pythonの一覧を取得するには、[py -0P]か、[py -list-paths]を実行すればわかるそうです。ぜひ覚えておきたいですね。

fig05

ちなみに私は、以前PCが残念なことになってしまい、入れなおしているので一つだけなんですが、複数入ってる人はここにつらつらくるはずです。

入っていないバージョンを指定すると、入ってるのはそれじゃない、こっちだ!と怒られます。
fig06
ところで、この-3.9-64の-64はbitだそうです。どのバージョンを使うかの時に、[py -バージョン-bit]とするとbitまで指定できるそうな。

補足)
py.exeのヘルプが用意されています。コマンドラインで[py --help]とすると見れますので、気になる方はどこかのタイミングで一度実行してみてください。

Pythonを複数バージョン同居させる方法は?

普通に公式サイトからインストールしたいバージョンのファイルを取得し、インストールを実行します。

fig07

なお、旧バージョンだけにライブラリをインストールしたい場合は、[py -(バージョン) -m pip install (ライブラリ名)]で出来るそうです。この辺も参考サイトに挙げたものに記載されていますので、興味がある方はご確認ください。

ところで、インストールするときにPATHを通す設定ができますが、チェックせずにインストールを終えた方で、PATHを通したいという方は、インストールしなおすか、個別に設定するという手段があるそうです。

また、基本的にLauncherは何も指定しなければ最新バージョンの方を使用するそうですが、いちいち指定するのが面倒という場合には.pyファイルの先頭行に[#!python(バージョン)]と書くと、ランチャーが読み込むときに解釈して、指定のバージョンで実行してくれるそうです。
これらの内容は参考サイトに記載されていましたので、詳しく知りたい方は参考サイトを確認ください。

参考サイト)
【Windows】Python3.10のインストール(パス通し)
Python3のインストール方法【導入は10分で完了!】 【補足】環境変数のPATH設定について
Pythonの複数バージョンの扱い方(Windowsの場合)

ということで、今回はこちらで終了です。お付き合いいただきありがとうございました。

 


 

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