Pythonの実行方法 ~Pythonのプログラムはどうやって使えばいいの?~
こんにちは、Rcatです。
今更ですが、初心者向けのPythonの始め方というか、実行方法について書きたいと思います。
なぜかというと、私が作った作品を配布しており、その配布ツールの中にPythonで出来ているものが多いからですね。実行は前提知識としていますが、少しでも利用の敷居が下がるように今回書いてみることにしました。
更に簡単な解説書きました
私の配布ツールを使いたいだけ。細かいことはどうでもいい!という方はこちらの方が分かりやすいかも。
代表作紹介
私作のPythonで出来た作品の一部を紹介します。気になる方はチェック!
Pythonって?
※ツールを使いたいだけだという方はスキップしてください
Pythonはプログラミング言語のひとつです。近年非常に人気があり、豊富なライブラリを用いて様々なことを行えます。
また、構文もモダンで機能も豊富で融通も利くので書きやすいです。
インタプリタ言語なので、実行したいPCに事前に"Python"というプログラム言語ををインストールしてから実行という形になります。
インタプリタ言語とは、出来上がったプログラムの実行ファイルを作成せず、ソースコードのまま実行するものです。そのため、ソースを実行する本体であるインタプリタが必要です。PythonをインストールするというのはPythonのインタプリタである"python.exe"をインストールしましょうということです。
Pythonはクロスプラットフォーム対応なので、WindowsでもLinuxでもMACでもAndroidでも動きます。
RcatのメインターゲットはWindowsとLinuxです。
Pythonインストールと実行環境
※ツールが使いたいだけの方も読んでインストールしてください
今回はRcatが利用する、WindowsとLinuxのOSを対象に話していきます。
OSとはオペレーティングシステムの事で、PCの電源を入れると立ち上がるデスクトップの事とでもいえばいいでしょうか?ちゃんとした言い方すると多分分からない人も多いと思うので…。
WindowsはPCを普通に買うと入ってるやつですね。今だとWindows11でしょうか。あえてリンゴを選ばなければあなたのPCはWindowsでしょう。
先に言っておきますが、RcatはWindows10使用なので説明は全て10の画像を使います。11では多少を異なると思いますので、必ずしも紹介している画像や語句が完全に一致するわけではないことをご承知おきください。
Linux搭載PCは家電量販店では入手できません。自分でインストールするか、そもそも家庭向けではないものだと思います。用途はサーバー向けが多いです。
Windows (※ツールが使いたいだけで他はよくわからんという方はほぼ100%こちら)
公式サイトからインストーラーをダウンロードしてインストールするだけです。
アクセスしてDownloadsからWindowsをクリックしてダウンロードページに飛びます。
ダウンロードページにたくさんのリンクがあるので難しいですが、"Stable Releases"(左列)の中から使いたいバージョンを探します。
私のツールは3.8と3.11で作っているので3.11.Xで選んでおけば良いです。
プログラムの方で"Python3.11以上"などと書かれていればそれに従います。そうでない場合は、最新かひとつ前を選ぶのが妥当だというのが私の意見です。ひとつ前を選ぶのは、最新だとライブラリの対応が追い付いていない可能性があるからです。
バージョン順ではなくリリース順なので上から見ていってほしいバージョンの中で最新のものを選びます。
また、細かいバージョンアップではインストーラーが用意されていない場合もあるので、無い場合はあるバージョンまでさかのぼります。
インストーラーは6個のリンクがありますが、"Windows installer (64-bit)"を選べばよいです。
どうしても選び方が分からないとき
Downloadsをクリックしたときの以下のページに出てくるDLボタンから最新版を取得しても良いです。これでインストーラーが手に入ります。
上の説明画面との違いはDownloadsを直にクリックするか、カーソル合わせたときにメニューに触れるかの差です。
ただし上で注意しているように最新版が新しすぎて対応しきれていない場合があるので注意が必要です。
Rcatが使っていないバージョンは問い合わせ対象外となります。
インストールの注意
インストーラーを開いた時、一番下の項目に必ずチェックを入れてください。
このチェックを忘れたことにより、うまく起動できないや変な起動の仕方をすると言ったことが多くあるようです。
それ以外には特筆すべきではありません。他のサイトも参考にしてみながらインストールしてください。
インストールが完了すると、拡張子がpyのファイルはPythonのアイコンに変わります。
拡張子とはファイル名の一番後ろのドットの後につく英数字のことです。
そのデータが何のためのデータなのかを表す文字列です。自分で目的が分かっていない限り変更してはいけません。Pythonのデータは"py"や"pyw"、"pyc"などがあります。メモ帳で保存するテキストの場合は"txt"です。
何も設定していない場合見えませんが、Windows10の場合、表示タブから拡張子のチェックボックスにチェックを入れることで表示されるようになります。
コマンドラインでの動作確認
※ツールが使いたいだけの方はスキップしてください
今後の説明でPythonの起動方法はダブルクリックではなく、コマンドラインでの起動を前提としていきます。
そのため、コマンドを使った起動方法について先に説明します。
まずはコマンドプロンプトを起動します。
スタートボタンを押してcmdといれて検索します。
コマンドプロンプトという黒いウィンドウのアイコンが出てくればオッケーです。実行してください。
こんな感じで黒い画面が開けば成功です。
"py"または"python"と入力してエンターキーを押してみましょう。
この時点でPythonが起動すればインストールに成功しています。
Pythonを終了するにはCtrl+Zを押した後、エンターです。
ちなみにpyと打った場合は、python本体のインタプリタを起動したことになります。
Linux
※Linux?よくわからんという方は間違いなく対象外なのでスキップしてよいです。
次はLinuxです。
OSで使用しているので"python"や"python3"と入力すれば起動します。
私は気にしないですが、OSで使っているものをそのまま使うのは良くないとする場合もあるみたいなので、そう考える場合は仮想環境を使いましょう。
まぁLinux使うレベルの人に説明は不要だとは思いますが…。
Linuxの場合、終了するにはCtrl+Dを押します。連打してログアウトしないように…
とりあえず実行する
※ツールが使いたいだけの方は次の"環境構築が自動でできる場合も"を先に見てください。対象の場合この手順はスキップできます。
さて、インストールは済んだと思いますので、早速ツールを実行してみましょう。
起動方法
コマンドラインからの起動で説明していきます。Windowsの場合はコマンドプロンプトを起動、Linuxの場合はShellから起動。
※難しいなと思った場合はスキップして次の"環境構築が自動でできる場合も"に進んでください。最近は使いやすいように工夫しています。
手順
ツールを実行したいフォルダに作業フォルダを変更
"cd パス"で作業フォルダを変更します。
作業フォルダとはプログラムが動く基準となるフォルダで、私のツールはメインのスクリプトがあるフォルダを作業フォルダにするのが基本です。というか基本はなんでもこうです。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にアクセスすることで起動を確認できます。どうやら成功のようです。
ライブラリのインストールでエラーになる
こちら別のパソコンで環境構築を試した時にエラーになった画面です。
このように構築中に真っ赤になる場合は何かしらライブラリのインストールでエラーになっている可能性があります。
よくわからないのでGoogle翻訳に掛けてみましょう
ちなみにこれで見るべき部分は黄色い線で引いた部分です
error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
どうやらこのライブラリーは自動的にコンパイルを行うようですが、それをするためのツールがないのでエラーになってしまったみたいです。
最後にURLがあるのでアクセスしてツールキットをインストールしました。
なお、この辺りはライブラリの問題であり、私の問題ではないので問い合わせをいただいても対応することはできません。
ただし、私は既に構築済みの環境なので見逃していることは大いにあるので記事にコメントにて報告は受け付けます。いただいた報告は記事に追加して回答とします。
これ以外にもライブラリによってはgitコマンドが必要だったこともあるので、まっさらなパソコンで始める人にはまだ他にも必要なものがあるかもしれません。
そこまでリスト化しきれないのでライブラリのインストールでエラーが出る場合は各自確認するようにしてください。
gitのインストール
gitが必要であると書いてあった場合はこの手順でインストールできます。
以下からダウンロードして、インストールしてください。
別のPCで試しましたが、基本的にNextを押していくだけでOK。色々表示されますがデフォルトの選択項目で問題なさそうです。
環境構築が自動でできる場合も
※ツールが使いたいだけの方は少し先の"自動環境構築での起動方法"へ進んでください
自動で構築ってどういうこと?
"とりあえず実行する"で紹介したように必要なライブラリを自らインストールして起動するのが基本ですが、作品によっては、仮想環境の作成からライブラリのインストールまで自動化されている場合があります。
というか最近はそうなるようにしています。
仮想環境って?
仮想環境はPythonの実行環境を分けて別個にすることです。
これ以前で紹介したライブラリのインストールはPython全体で有効です。
あるプログラムでは古いバージョンのライブラリが必要だったりすることがあります。しかし、他のスクリプトは最新の前提で書いている場合、どちらかが実行できない状態に陥ってしまいます。
こういったことを回避したり、またライブラリの管理をきちんと行うために実行環境を分けるのが仮想環境です。
本件は以下で別途記事にしました。よろしければご確認ください。
Rcatの自動環境構築について
私の配布しているツールで実行環境の自動作成に対応しているのは、以下のようなファイルが含まれる場合です。
requirements
これは一般的なライブラリが列挙されているテキストファイルです。
これを使うことで自動的に全てのライブラリをインストールすることができます。
手動で使いたい場合は次のようにしてください。
pip install -r requirements.txtcreate
ツールの実行環境を作成します。
仮想環境の作成からライブラリのインストールまでを自動で行えます。start
ツールを実行するためのスクリプトです。
仮想環境の有効化と実行、仮想環境から抜けるまでの一連の動作が入っています。
要するにこれを実行するだけで、仮想環境とか特に何も考えずに実行できるということです。
自動環境構築での起動方法
自動環境構築からのツール起動方法ですが、startというファイルを起動します。
Windowsの場合は歯車マークのBATファイル、Linuxの場合はSHのシェルスクリプトを起動してください。どちらが片方しかない場合は、そのOSは対象外の可能性があります。(単に作り忘れてるだけの場合もある。)
一番最新のものが入っている場合、これだけで環境構築から起動までを全自動で行います。パソコンの性能によって数十秒程度黒い画面が出た後、文字がずらーっと流れてツールの起動に移ります。
1つ古いバージョンが入っている場合、環境構築は別でやらなければならないのですぐ落ちると思います。
この場合は先にcreateの方を実行してください。その後、startを実行することでツールを起動できます。
#まずは環境構築スクリプトを実行
rcat@rcat-Green-G5:/Rcat_Service/Script$ ./creae.sh
中略
#次にツールのスタートスクリプトを実行
rcat@rcat-Green-G5:/Rcat_Service/Script$ ./start.sh
* 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.4:8081
Press CTRL+C to quit
例えば下記で紹介しているツールは、構築スクリプトを実行するだけで、ライブラリのインストールができます。
venvフォルダが作成されず動かない場合
セキュリティソフトにブロックされ、仮想環境フォルダーのvenvがうまく作成されないことがあることを確認しました。
Windows標準搭載のWindowsDefenderを使っている場合、通知が来ていますのでブロックされていた場合は許可するようにしてからもう一度環境構築バッチを起動してください。
なんか警告が出るんだけど
Windowsでスタートを実行しようとすると、このような画面が出ませんか?
これが出た場合、詳細情報をクリックして実行を押すことで起動することができます。
これが出る理由としては、startのファイルのことを別名スクリプトといいパソコンの操作を自動化することができます。
つまり、悪意のある操作が自動化されるスクリプトだった場合、危険ですよ。本当に実行し大丈夫ですか?という警告です。
Rcatを信用できない場合は、ここで実行しないをクリックして諦めてください。
ワンクリックで環境構築から起動まで全自動
簡単動画GIF化ツール
ワンクリック画像透かし刻印ツール
AIチャットボット作成テンプレート
ポート開放ツール
ライブラリインストールが自動
自分でプログラムを書くには?
コメントがあれば検討します
まとめ
今回はPythonのインストールと配布ツールの起動方法について紹介しました。
少しでも気軽に作品を利用していただけたらなと思います。
本記事は知識の少ない方でもPythonツールを使っていただけるように書きました。
もしこの説明でも分からない部分があれば、コメントいただければ随時改善します。あまりにも…でなければ。
ではまたお会いしましょう。
情報が役に立ったと思えば、僅かでも投げ銭していただけるとありがたいです。