Pythonのプログラムを実行したとき、エラーが表示されると、
「コードの書き方が間違っているのでは?」
と考える方が多いと思います。
もちろん、コードに問題がある場合もあります。
しかし、実際にはコードが正しくても、Pythonのバージョンやライブラリ、ファイルの保存場所など、実行環境が原因で動かないことも少なくありません。
例えば、インターネット上で見つけたコードや、ChatGPTなどの生成AIに作ってもらったコードをそのまま実行しても、自分のパソコンではエラーになることがあります。
今回は、現役SEである私が、Pythonが動かないときに確認している実行環境のポイントを紹介します。
1.Pythonがインストールされているか確認する
まず確認したいのは、Pythonが正しくインストールされているかです。
WindowsのコマンドプロンプトやPowerShellでは、次のコマンドで確認できます。
python --version
環境によっては、次のコマンドを使用します。
py --version
UbuntuなどのLinux環境では、次のように確認することがあります。
python3 --version
Pythonのバージョンが表示されれば、インストールされています。
コマンドが見つからないというエラーが表示される場合は、Pythonがインストールされていないか、実行するためのパスが設定されていない可能性があります。
2.Pythonのバージョンが合っているか
Pythonがインストールされていても、バージョンが合わないために動かないことがあります。
例えば、使用したいライブラリが新しいPythonにまだ対応していなかったり、反対に古いPythonでは使用できなかったりする場合です。
インターネットの記事やAIが作ったコードを使用するときは、
・どのPythonバージョンを想定しているか
・使用するライブラリが対応しているか
・ほかの環境ではどのバージョンで動いているか
を確認します。
新しいバージョンほど必ずよいとは限りません。
使用したいライブラリとの相性を考えて、安定して利用できるバージョンを選ぶことが大切です。
3.必要なライブラリが入っているか
Pythonでは、標準機能だけでなく、外部ライブラリをインストールして使用することがよくあります。
例えば、次のようなライブラリです。
・データ加工に使用するpandas
・Excelファイルを扱うopenpyxl
・Webアプリを作成するFlask
・データベースへ接続するライブラリ
・AIや機械学習で使用するPyTorch
必要なライブラリが入っていない場合は、次のようなエラーが表示されます。
ModuleNotFoundError
ただし、ライブラリをインストールしたのに、同じエラーが出続ける場合もあります。
その場合は、実行しているPythonとは別の環境にライブラリをインストールしている可能性があります。
4.仮想環境が有効になっているか
Pythonの開発では、プロジェクトごとにライブラリを分けるため、仮想環境を使用することがあります。
仮想環境を使用すると、
・プロジェクトごとに異なるバージョンを使える
・ほかのプロジェクトへの影響を減らせる
・必要なライブラリを管理しやすくなる
といった利点があります。
一方で、仮想環境を有効にしないままプログラムを実行すると、インストールしたはずのライブラリが見つからないことがあります。
また、PyCharmやVisual Studio Codeなどの開発環境で、別のPythonインタープリターが選択されているケースもあります。
「インストールしたのに反映されない」ときは、現在どのPythonを使って実行しているのかを確認することが重要です。
5.ファイルやフォルダの場所を確認する
Pythonでは、CSV、Excel、画像、設定ファイルなど、外部ファイルを読み込むことがあります。
その際、コードに書かれた場所と実際の保存場所が異なると、ファイルを読み込めません。
よくある原因には、次のようなものがあります。
・ファイル名が違っている
・拡張子が違っている
・実行するフォルダが想定と異なる
・WindowsとUbuntuでパスの書き方が違う
・日本語や空白を含むフォルダ名が影響している
プログラムのファイルと読み込みたいデータを同じ場所に置いたつもりでも、実際には別のフォルダを基準に探している場合があります。
コードだけでなく、実行した場所も確認する必要があります。
6.OSによる違いを確認する
同じPythonコードでも、Windows、Ubuntu、macOSなど、使用するOSによって動作が異なることがあります。
特に注意したいのが、ファイルパスやコマンドの違いです。
Windowsでは円記号やバックスラッシュを使用する一方、Ubuntuなどではスラッシュを使用します。
また、ライブラリによっては、OSごとにインストール方法が異なったり、追加のソフトウェアが必要になったりすることもあります。
「ほかの人の環境では動いているのに、自分の環境では動かない」
という場合は、OSの違いも確認します。
7.エラーメッセージを最初から確認する
エラーが表示されると、最後の1行だけに注目しがちです。
しかし、Pythonのエラーメッセージには、
・どのファイルで発生したか
・どの行で発生したか
・どの処理から呼び出されたか
・どのようなエラーなのか
といった情報が含まれています。
エラーの最後だけでなく、その前に表示されている内容も確認することで、コードの問題なのか、環境の問題なのかを判断しやすくなります。
相談する場合も、エラーメッセージを途中で省略せずに共有すると、原因を見つけやすくなります。
コードを何度も変更する前に環境を確認する
Pythonが動かないとき、AIへエラーを伝えて、コードを何度も書き換えることがあります。
しかし、実行環境が原因だった場合、コードを変更しても問題は解決しません。
それどころか、もともと正しかったコードまで複雑になり、別の問題が増えることもあります。
そのため、コードを大きく修正する前に、
・Pythonのバージョン
・使用しているライブラリ
・仮想環境
・選択されているインタープリター
・ファイルの保存場所
・使用しているOS
を確認することが大切です。
Pythonの環境構築やエラーで困っている方へ
私は現役SEとして、Python、Flask、PostgreSQL、Ubuntu、Dockerなどを使用した開発に携わっています。
ココナラでは、次のようなご相談に対応しています。
・Pythonが起動しない原因の調査
・ライブラリをインストールできない問題
・仮想環境やインタープリターの設定
・WindowsやUbuntuでの環境構築
・AIが生成したコードの確認と修正
・既存プログラムのエラー調査
・読みづらくなったコードの整理
「何が原因なのか分からない」
「コードが悪いのか、パソコンの設定が悪いのか判断できない」
「エラーの内容をうまく説明できない」
という状態でも大丈夫です。
現在の状況やエラーメッセージを確認し、考えられる原因を一つずつ整理しながら進めます。
また、普段はPython、Flask、PostgreSQL、Ubuntu、Dockerなどについて、実際に環境を構築した手順や、開発中に発生した問題を初心者向けに発信しています。
これからPythonを始めたい方や、Webアプリ開発に挑戦したい方にも役立つ内容を、今後も紹介していきます。