Pythonの実行方法 ~Pythonのプログラムはどうやって使えばいいの?~

こんにちは、Rcatです。
今更ですが、初心者向けのPythonの始め方というか、実行方法について書きたいと思います。
なぜかというと、私は作った作品を配布しており、その配布ツールの中にPythonで出来ているものが多いからですね。実行は前提知識としていますが、少しでも利用の敷居が下がるように今回書いてみることにしました。


代表作紹介

私作のPythonで出来た作品の一部を紹介します。気になる方はチェック!

Pythonって?

Pythonはプログラミング言語のひとつです。近年非常に人気があり、豊富なライブラリを用いて様々なことを行えます。
また、構文もモダンで機能も豊富で融通も利くので書きやすいです。
インタプリタ言語なので、実行したいPCにPythonをインストールしてからプログラムを実行するため、同じプログラムを複数のOSで使用することもできます。
インタプリタ言語とは、出来上がったプログラムの実行ファイルを作成せず、ソースコードのまま実行するものです。そのため、ソースを実行する本体であるインタプリタが必要です。PythonをインストールするというのはPythonのインタプリタである"python.exe"をインストールしましょうということです。

pythonをインストールするとアイコンがPythonの物になります

Pythonインストールと実行環境

今回はRcatが利用する、WindowsLinuxのOSを対象に話していきます。
OSとはオペレーティングシステムの事で、PCの電源を入れると立ち上がるデスクトップの事とでもいえばいいでしょうか?ちゃんとした言い方すると多分分からない人も多いと思うので…。
WindowsはPCを普通に買うと入ってるやつですね。今だとWindows11でしょうか。あえてリンゴを選ばなければあなたのPCはWindowsでしょう。
先に言っておきますが、RcatはWindows10使用なので説明は全て10の画像を使います。11では多少を異なると思いますので、必ずしも紹介している画像や語句が完全に一致するわけではないことをご承知おきください。
Linux搭載PCは家電量販店では入手できません。自分でインストールするか、そもそも家庭向けではないものだと思います。用途はサーバー向けが多いです。

Windows

公式サイトからインストーラーをダウンロードしてインストールするだけです。
ダウンロードページにたくさんのリンクがあるので難しいですが、"Stable Releases"の列の中から使いたいバージョンを探します。
プログラムの方で"Python3.11以上"などと書かれていればそれに従います。そうでない場合は、最新かひとつ前を選ぶのが妥当だというのが私の意見です。ひとつ前を選ぶのは、最新だとライブラリの対応が追い付いていない可能性があるからです。私のツールは3.8と3.11で作っているので3.11選んでおけば良いです。

この時の例だと、トップに3.11.8、次に3.12.2がありますね。バージョン順ではなくリリース順なので上から見ていってほしいバージョンの中で最新のものを選びます。3.11なら一番上、3.12なら2番目のを選びましょう。

バージョンを選ぶとさらに細かく6個のリンクがありますが、"Windows installer (64-bit)"を選べばよいです。

インストールの注意

インストーラーを開いた時、一番下の項目にチェックが入っていませんが、必ず入れてください。
このチェックを忘れたことにより、うまく起動できないや変な起動の仕方をすると言ったことが多くあるようです。
それ以外には特筆すべきではありません。他のサイトも参考にして、みながらインストールしてください。

インストールが完了すると、拡張子がpyのファイルはPythonのアイコンに変わります。

拡張子とはファイル名の一番後ろのドットの後につく英数字のことです。
そのデータが何のためのデータなのかを表す文字列です。自分で目的が分かっていない限り変更してはいけません。Pythonのデータは"py"や"pyw"、"pyc"などがあります。メモ帳で保存するテキストの場合は"txt"です。
何も設定していない場合見えませんが、Windows10の場合、表示タブから拡張子のチェックボックスにチェックを入れることで表示されるようになります。

コマンドラインでの動作確認

今後の説明でPythonの起動方法はダブルクリックではなく、コマンドラインでの起動を前提としていきます。
そのため、コマンドを使った起動方法について先に説明します。

まずはコマンドプロンプトを起動します。
スタートボタンを押してcmdといれて検索します。
コマンドプロンプトという黒いウィンドウのアイコンが出てくればオッケーです。実行してください。
こんな感じで黒い画面が開けば成功です。
"py"または"python"と入力してエンターキーを押してみましょう。
この時点でPythonが起動すればインストールに成功しています。
Pythonを終了するにはCtrl+Zを押した後、エンターです。
ちなみにpyと打った場合は、python本体のインタプリタを起動したことになります。

Linux

次はLinuxです。
OSで使用しているので"python"や"python3"と入力すれば起動します。
私は気にしないですが、OSで使っているものをそのまま使うのは良くないとする場合もあるみたいなので、そう考える場合は別途インストールしてください。バージョンを選びたい場合もですね。
まぁLinux使うレベルの人に説明は不要だとは思いますが…。

Linuxの場合、終了するにはCtrl+Dを押します。連打してログアウトしないように注意

とりあえず実行する

さて、インストールは済んだと思いますので、早速ツールを実行してみましょう。

起動方法

コマンドラインからの起動で説明していきます。Windowsの場合はコマンドプロンプトを起動、Linuxの場合はShellから起動。

手順

  1. ツールを実行したいフォルダに作業フォルダを変更
    "cd パス"で作業フォルダを変更します。
    作業フォルダとはプログラムが動く基準となるフォルダで、私のツールはメインのスクリプトがあるフォルダを作業フォルダにするのが基本です。というか基本はなんでもこうです。

  2. Pythonを実行したいスクリプトを指定して実行
    "python pyファイル名"でファイルを指定して実行できます。
    これが私のPythonツールを実行する基本形となります。

実行中は入力できない状態となるがこれが正常

余談
Windowsでは"dir /b"、Linuxでは"ls"で作業フォルダ内のファイルを表示できます。ファイル名のコピペに便利です。

ライブラリのインストール

実行方法を紹介しましたが、たぶんエラーが出たはずです。
理由は依存するライブラリが無いからです。ライブラリとは、特定の機能提供してくれるもので、Pythonが何でもできるといわれるゆえんは豊富なライブラリがあるからです。
というわけでライブラリのインストールです。
ツール実行の際に、必要なライブラリがインストールされていないと、下記のように起動できずに落ちてしまいます。

R:\tmp\test>py ESP32CAM_Server_Ver2.2.py
Traceback (most recent call last):
  File "R:\tmp\test\ESP32CAM_Server_Ver2.2.py", line 43, in <module>
    import requests
ModuleNotFoundError: No module named 'requests'

ライブラリをインストールするには"pip"コマンドを使います。
例えば上記では"requests"が無いよと言われているので、下記のようなコマンドを打ちます。
"pip install requests"

R:\tmp\test>pip install requests
Collecting requests
  Obtaining dependency information for requests from https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl.metadata
  Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting charset-normalizer<4,>=2 (from requests)
  Obtaining dependency information for charset-normalizer<4,>=2 from https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl.metadata
  Using cached charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl.metadata (34 kB)
Collecting idna<4,>=2.5 (from requests)
  Obtaining dependency information for idna<4,>=2.5 from https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl.metadata
  Using cached idna-3.6-py3-none-any.whl.metadata (9.9 kB)
Collecting urllib3<3,>=1.21.1 (from requests)
  Obtaining dependency information for urllib3<3,>=1.21.1 from https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl.metadata
  Downloading urllib3-2.2.0-py3-none-any.whl.metadata (6.4 kB)
Collecting certifi>=2017.4.17 (from requests)
  Obtaining dependency information for certifi>=2017.4.17 from https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl.metadata
  Downloading certifi-2024.2.2-py3-none-any.whl.metadata (2.2 kB)
Using cached requests-2.31.0-py3-none-any.whl (62 kB)
Downloading certifi-2024.2.2-py3-none-any.whl (163 kB)
   ---------------------------------------- 163.8/163.8 kB 3.3 MB/s eta 0:00:00
Using cached charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl (99 kB)
Using cached idna-3.6-py3-none-any.whl (61 kB)
Downloading urllib3-2.2.0-py3-none-any.whl (120 kB)
   ---------------------------------------- 120.9/120.9 kB ? eta 0:00:00
Installing collected packages: urllib3, idna, charset-normalizer, certifi, requests
Successfully installed certifi-2024.2.2 charset-normalizer-3.3.2 idna-3.6 requests-2.31.0 urllib3-2.2.0

R:\tmp\test>

Successfullyと出ているので上手く行ったようです。
さて、まだ起動しないと思ったら今度は"cryptography"ですね。という感じで、無いと言われるライブラリをどんどんインストールします。

R:\tmp\test>py ESP32CAM_Server_Ver2.2.py
Traceback (most recent call last):
  File "R:\tmp\test\ESP32CAM_Server_Ver2.2.py", line 44, in <module>
    from cryptography.fernet import Fernet #pip install --upgrade pip setuptools pip install cryptography
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'cryptography'

今回の例で必要なpip一覧
ちなみに、"cv2"は"opencv-python"と"opencv-contrib-python"で"PIL"は"pillowのように、要求されるライブラリ名とpipコマンドで指定する名前が違うものがあります。pipでインストールに失敗する場合、正しい名前は何かネットで調べましょう。

pip install requests
pip install cryptography
pip install flask
pip install flask_socketio
pip install opencv-python
pip install opencv-contrib-python
pip install pillow

cv2ライブラリの名前が違ってインストールに失敗する例

R:\tmp\test>py ESP32CAM_Server_Ver2.2.py
Traceback (most recent call last):
  File "R:\tmp\test\ESP32CAM_Server_Ver2.2.py", line 49, in <module>
    import cv2
ModuleNotFoundError: No module named 'cv2'

R:\tmp\test>pip install cv2
ERROR: Could not find a version that satisfies the requirement cv2 (from versions: none)
ERROR: No matching distribution found for cv2

正しいのは下記の通りです

R:\tmp\test>pip install opencv-python
Collecting opencv-python
  Obtaining dependency information for opencv-python from https://files.pythonhosted.org/packages/c7/ec/9dabb6a9abfdebb3c45b0cc52dec901caafef2b2c7e7d6a839ed86d81e91/opencv_python-4.9.0.80-cp37-abi3-win_amd64.whl.metadata
  Downloading opencv_python-4.9.0.80-cp37-abi3-win_amd64.whl.metadata (20 kB)
Collecting numpy>=1.21.2 (from opencv-python)
  Obtaining dependency information for numpy>=1.21.2 from https://files.pythonhosted.org/packages/3f/6b/5610004206cf7f8e7ad91c5a85a8c71b2f2f8051a0c0c4d5916b76d6cbb2/numpy-1.26.4-cp311-cp311-win_amd64.whl.metadata
  Downloading numpy-1.26.4-cp311-cp311-win_amd64.whl.metadata (61 kB)
     ---------------------------------------- 61.0/61.0 kB 1.6 MB/s eta 0:00:00
Downloading opencv_python-4.9.0.80-cp37-abi3-win_amd64.whl (38.6 MB)
   ---------------------------------------- 38.6/38.6 MB 28.4 MB/s eta 0:00:00
Downloading numpy-1.26.4-cp311-cp311-win_amd64.whl (15.8 MB)
   ---------------------------------------- 15.8/15.8 MB 34.4 MB/s eta 0:00:00
Installing collected packages: numpy, opencv-python
Successfully installed numpy-1.26.4 opencv-python-4.9.0.80

起動に成功すると下記のようになります。

R:\tmp\test>py ESP32CAM_Server_Ver2.2.py
 * Serving Flask app 'ESP32CAM_Server_Ver2.2'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:8081
 * Running on http://192.168.0.199:8081
Press CTRL+C to quit

このツールの場合は表示されるURLにアクセスすることで起動を確認できます。
どうやら成功のようです。

自分でプログラムを書くには?

スキorビュー数に応じて検討します


情報が役に立ったと思えば、僅かでも投げ銭していただけるとありがたいです。