「Pythonのコマンドライン実行」って、なんだか玄人っぽくて敬遠していませんか?
この記事はコマンドラインからPythonスクリプトを走らせる方法を、まるでゲームのチュートリアルのように、一つ一つ丁寧に解説します。
これを読めば、コマンドライン操作の楽しさに気づき、Pythonのスキルが一段とアップすること間違いなし!
この記事で学べること
- Pythonスクリプトをコマンドラインから実行する基本的な方法
- WindowsとMac、Linuxでのコマンドラインツールの起動
- スクリプトの場所を指定する方法や「パスを通す」考え方
- コマンドライン引数を使ってスクリプトに情報を渡す方法
- コマンドライン実行でよくあるエラーと、その解決の糸口
- コマンドライン実行をさらに便利にするちょっとした工夫
Pythonのコマンドライン実行とは?
まず、「コマンドライン」って何でしょう?
簡単に言うと、文字だけでコンピューターに指示を出すための窓口のことです。普段、皆さんがパソコンでアプリを起動したり、ファイルを開いたりするときは、マウスを使ってアイコンをクリックしたりしますよね。これは「GUI(グラフィカルユーザーインターフェース)」と呼ばれる、絵やボタンを使った操作方法です。
一方、コマンドラインは、キーボードから文字の命令(コマンド)を入力することで、コンピューターに様々な処理を実行させます。
「なんだか古臭い…」と思うかもしれませんが、プログラムを動かす際には、このコマンドラインがとってもパワフルな力を発揮するんです。特にPythonのようなプログラミング言語で作ったスクリプトを実行する際には、コマンドラインが非常に便利で、自動化処理などを行う上で欠かせない存在となります。
では、なぜPythonスクリプトをコマンドラインから実行する必要があるのでしょう?
例えば、
- 特定の処理を自動的に実行したい時(毎日のデータ処理など)
- サーバー上でPythonプログラムを動かしたい時(GUIがない環境が多いです)
- 他のプログラムと連携してPythonスクリプトを実行したい時
- ちょっとしたPythonコードをすぐに試したい時(IDEを立ち上げるまでもない場合)
など、様々な場面でコマンドライン実行が役立ちます。最初は少し難しく感じるかもしれませんが、基本を覚えれば、Pythonライフがより快適になること請け合いです!
いまさら聞けない!Pythonスクリプトの基本と拡張子「.py」
次に、Pythonスクリプトについてお話ししましょう。
Pythonスクリプトとは、簡単に言えば、Pythonのルールに従って書かれたテキストファイルのことです。このファイルには、コンピューターに実行させたい一連の命令が書かれています。
Pythonスクリプトのファイル名の最後には、必ず「.py」という拡張子が付いています。
これは「このファイルはPythonのプログラムだよ!」とコンピューターに伝えるための目印のようなものです。例えるなら、Wordのファイルには「.docx」、Excelのファイルには「.xlsx」が付いているのと同じです。
Pythonスクリプトは、テキストエディタと呼ばれるソフトを使って書きます。Windowsに標準で入っている「メモ帳」でも書けますし、より高機能な専用のエディタ(Visual Studio Code、PyCharmなど)を使うと、色分け表示や自動補完などの便利な機能が使えて、より快適にプログラミングできます。
試しに、とっても簡単なPythonスクリプトを作ってみましょう。例えば、以下のような内容をテキストエディタに書いて、「hello.py」という名前で保存してみてください。
print("こんにちは!Pythonの世界へようこそ!")
これは、「こんにちは!Pythonの世界へようこそ!」という文字を画面に表示させる、たった1行のプログラムです。この「.py」ファイルが、コマンドラインから実行するためのあなたの最初のPythonスクリプトになります。
コマンドプロンプト?ターミナル?環境別の起動方法を徹底解説
さあ、いよいよコマンドラインツールを起動してみましょう。使っているパソコンのOSによって、起動するツールの名前が少し違います。
Windowsの場合
「コマンドプロンプト」または「PowerShell」というツールを使います。
- 画面左下のスタートボタンをクリック
- 検索バーに「cmd」と入力
- 表示された「コマンドプロンプト」をクリック
または
- 画面左下のスタートボタンを右クリック
- 表示されたメニューから「Windows PowerShell」をクリック
どちらを使っても、基本的な操作は似ています。
macOSの場合
「ターミナル」というアプリを使います。
- 画面右上のSpotlight検索(虫眼鏡のアイコン)をクリック
- 検索バーに「ターミナル」と入力
- 表示された「ターミナル.app」をクリック
「アプリケーション」フォルダの中の「ユーティリティ」フォルダにもあります。
Linuxの場合
様々な種類のターミナルソフトがありますが、基本的な使い方は同じです。画面上部や下部のメニューから「ターミナル」などの名前のアプリを探して起動してください。
Pythonスクリプトをコマンドラインから実行する一番簡単な方法
いよいよ、先ほど作った「hello.py」を実行してみましょう。
コマンドラインからPythonスクリプトを実行する基本的なコマンドは、
python ファイル名.py
です。ただし、このコマンドを実行する前に、コマンドラインが「hello.py」のある場所にいることを伝える必要があります。
コンピューターの中の「場所」は、「ディレクトリ」または「フォルダ」と呼ばれます。コマンドラインで現在いる場所(カレントディレクトリ)を確認するには、以下のコマンドを使います。
- Windowsの場合
cd
- macOS、Linuxの場合
pwd
もし、「hello.py」をデスクトップに保存した場合、コマンドラインの場所をデスクトップに変更する必要があります。例えば、Windowsでユーザー名が「User」の場合、
cd C:\Users\User\Desktop
のように入力してEnterキーを押します。(実際のユーザー名はあなたの環境に合わせてくださいね!)macOSの場合は、
cd /Users/あなたのユーザー名/Desktop
のように入力します。
そして、コマンドラインの場所が「hello.py」のあるディレクトリになったら、いよいよ実行です!
python hello.py
と入力してEnterキーを押すと…なんと!
こんにちは!Pythonの世界へようこそ!
と表示されましたね!これで、あなたは初めてPythonスクリプトをコマンドラインから実行することに成功しました!おめでとうございます!
スクリプトの場所は?パスを通すってどういうこと?
先ほどは、スクリプトのある場所にコマンドラインを移動してから実行しましたが、毎回移動するのはちょっと面倒ですよね。そこで登場するのが「パスを通す」という考え方です。
「パス」とは、コンピューターがファイルやプログラムを探す際に参照する場所のリストのことです。
もしPythonの実行ファイルがあるディレクトリにパスが通っていれば、どこからでも「python」コマンドを実行できるのです。同様に、よく使うPythonスクリプトがあるディレクトリにパスを通しておけば、そのディレクトリに移動しなくても、スクリプト名を指定するだけで実行できるようになります。
ただし、初心者のうちは、まずスクリプトのある場所に移動して実行する方法に慣れるのがおすすめです。
パスを通す設定は、OSによって少し手順が異なり、間違えると予期せぬ動作を引き起こす可能性もあるため、最初は無理に行う必要はありません。少しずつ慣れてきたら、「環境変数」というキーワードで検索して、パスの設定方法を調べてみてください。
コマンドライン引数とは?スクリプトに外部から情報を渡す
コマンドライン実行の面白いところは、スクリプトを実行する際に、追加の情報を渡せることです。
これは「コマンドライン引数」と呼ばれます。例えるなら、レストランで料理を注文する時に、「大盛りで!」「辛めで!」と追加の要望を伝えるようなものです。
Pythonスクリプトの中で、これらの引数を受け取るためには、標準ライブラリの「sys」モジュールを使います。以下の例を見てください。
import sys print(sys.argv)
このスクリプトを「arguments.py」という名前で保存して、コマンドラインから以下のように実行してみましょう。
python arguments.py こんにちは Python
すると、次のような結果が表示されます。
['arguments.py', 'こんにちは', 'Python']
`sys.argv`は、スクリプト名自身を含む、コマンドラインで指定した引数を要素とするリストです。最初の要素(インデックス0)はスクリプトの名前('arguments.py')で、その後に指定した'こんにちは'や'Python'が、順番にリストの要素として格納されています。
この仕組みを使うと、例えば、処理するファイル名をコマンドラインから指定したり、スクリプトの動作を外部から変更したりすることができます。
引数の種類と基本的な使い方(位置引数、オプション引数など)
コマンドライン引数には、大きく分けて「位置引数」と「オプション引数」の2種類があります。
- 位置引数
コマンドラインで指定した順番によって意味が決まる引数です。先ほどの例 ('こんにちは'、'Python') は位置引数です。スクリプト側では、`sys.argv`のインデックスを使って、それぞれの引数にアクセスします。 - オプション引数
ハイフン (`-`) やダブルハイフン (`--`) の後にキーワードを付けて指定する引数です。例えば、`-n 10` や `--count 10` のように使われます。オプション引数は、順番に依存しないため、柔軟な引数の指定が可能です。オプション引数を処理するには、`argparse`などの専用のライブラリを使うと便利です。
最初は位置引数の使い方を覚えるだけでも十分です。
`sys.argv`を使って、簡単なスクリプトで引数を扱ってみることから始めましょう。例えば、2つの数値をコマンドラインから受け取り、その合計を表示するスクリプトは以下のようになります。
import sys if len(sys.argv) == 3: num1 = int(sys.argv[1]) num2 = int(sys.argv[2]) print(f"{num1} + {num2} = {num1 + num2}") else: print("使い方: python add.py [数値1] [数値2]")
このスクリプトを「add.py」として保存し、コマンドラインから `python add.py 5 3` のように実行すると、「5 + 3 = 8」と表示されます。
コマンドライン実行でよくあるエラーと解決策【初心者向け】
コマンドラインでPythonスクリプトを実行していると、時にはエラーに遭遇することもあります。ここでは、初心者の方によくあるエラーと、その解決の糸口をいくつかご紹介します。
- 「No such file or directory」
これは、「指定されたファイルやディレクトリが見つかりません」という意味のエラーです。- 原因:ファイル名が間違っている、またはスクリプトが存在しないディレクトリでコマンドを実行している可能性があります。
- 解決策:ファイル名をもう一度確認してください。`cd`コマンドを使って、スクリプトが存在するディレクトリに移動してから実行してみてください。
- 「SyntaxError」
これは、Pythonスクリプトの文法に誤りがある場合に発生するエラーです。- 原因:スペルミス、コロン(:)の忘れ、インデントの誤りなど、Pythonのルールに反した書き方をしている可能性があります。
- 解決策:エラーメッセージに表示されている行番号を確認し、スクリプトの該当箇所を修正してください。
- 「IndentationError」
これは、インデント(行頭の空白)が正しくない場合に発生するエラーです。Pythonでは、インデントはプログラムの構造を表す上で非常に重要です。- 原因:スペースとタブが混在している、インデントの深さが間違っているなどが考えられます。
- 解決策:インデントはスペース4つで統一するなど、書き方を統一してください。
- 「ModuleNotFoundError」
これは、スクリプトで使おうとしているモジュール(外部の便利な機能の集まり)が見つからない場合に発生するエラーです。- 原因:必要なモジュールがインストールされていない可能性があります。
- 解決策:`pip install モジュール名` というコマンドを使って、必要なモジュールをインストールしてください。
エラーメッセージは、一見すると難解に見えるかもしれませんが、よく読むと問題の原因の手がかりが書かれています。
慌てずに、エラーメッセージを落ち着いて確認することが、解決への第一歩です。
コマンドライン実行をさらに便利にするTipsと応用例
コマンドライン実行に慣れてくると、さらに色々な便利な使い方ができるようになります。いくつか例を挙げましょう。
- 実行結果のリダイレクト:スクリプトの実行結果をファイルに保存できます。
python script.py > output.txt
こうすると、script.pyの実行結果がoutput.txtというファイルに書き込まれます。 - パイプ処理:あるスクリプトの出力を、別のスクリプトの入力として渡すことができます。(少し高度なテクニックです)
- バッチファイルやシェルスクリプトとの連携:複数のコマンドをまとめて実行するバッチファイル(Windows)やシェルスクリプト(macOS、Linux)からPythonスクリプトを実行することで、より複雑な自動処理を組むことができます。
これらのテクニックを身につけると、日々の作業を効率化したり、より高度なプログラミングに挑戦したりすることができるようになります。
【まとめ】コマンドライン実行をマスターしてPythonをもっと身近に!
この記事では、Pythonのコマンドライン実行の基本から、少し応用的な使い方までをご紹介しました。
最初は戸惑うこともあったかもしれませんが、実際に手を動かしてみることで、コマンドラインの操作にも慣れてきたのではないでしょうか。
Pythonのコマンドライン実行をマスターすることは、Pythonスキルを大きく向上させるだけでなく、コンピューターをより深く理解するきっかけにもなります。
ぜひ、今回学んだことを活かして、色々なPythonスクリプトをコマンドラインから実行してみてください。きっと、これまで以上にPythonが身近な存在になるはずです。
【関連記事】 「Pythonとは?」に答える最初の一歩
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。