ModuleNotFoundError: no module named openpyxl」エラーで行き詰っていませんか?Pythonを始めた人がopenpyxlライブラリを扱い始めると、しばしば立ち往生することがあります。
これは業界共通の問題で、Pythonを使い始めた多くのコーダーの画面にポップアップ表示されます。
これは、PythonとOpenpyxlの間のバージョンエラーや、間違ったインストールが原因で起こることが多いです。
この記事では、コーダーがopenpyxlで遭遇する最も一般的なエラーを調べ、それぞれのエラーに対する解決策を導き出すことにします。
openpyxlとは?
Open XML形式を読むためのPythonライブラリがなかったため、Excel形式のファイルを読み書きするための現在の業界標準のPythonライブラリであるopenpyxlの必要性が生じました。
サポートされているフォーマットは以下の通りです。
xlsx/xlsm/xltx/xltmです。
openpyxlで発生するエラーのほとんどは、不適切なインストールが原因です。
そして、これらのエラーは、簡単な再インストールで解決することができます。
openpyxlの正しいインストール方法について見てみましょう。
パッケージマネージャによる openpyxl のインストール
pipを使用する
Pythonのライブラリをインストールする最も簡単な方法は、pipを使うことです。
PipはPythonで書かれたシステムソフトウェアで、オープンソースのライブラリを通してPythonのライブラリをインストールし、管理することができます。
pipを使ったインストールには、使用しているPythonのバージョンの知識が必要です。
Python2を使用している場合、任意のライブラリをインストールする構文は以下の通りです。
pip install 'package_name'
|
Python2の場合は、「pip」だけで、任意のPythonパッケージがインストールされます。
Python3用にインストールする場合は、次のように記述します。
>と記述します。
注意: 新しいバージョンの pip、主に 3.0 以降のバージョンでは、’pip’ と入力するとデフォルトで Python3 用のパッケージがインストールされます。
この異常は、ほとんどの新しいバージョンのPythonで見られるもので、もしこれに遭遇した場合は、Pythonのバージョンを下げることが推奨されます。
システム内に複数のPythonバージョンがあり、vanilla pip3が正しいバージョンを取得するかどうかわからない場合、代わりにこの構文を使用することができます。
pip3 install 'x'
|
Condaを使用する
多くのコーダーは、仮想環境機能のために、pipよりもCondaの使用を好みます。
もし、Condaを使ってopenpyxlをインストールしたい場合は、次の構文を入力してください。
python3 -m pip install --user xlsxwriter |
または
conda install -c anaconda openpyxl |
2番目の構文は、主に最新のCondaバージョン(Conda 4.7.6以上)用です。
お使いのOSに合わせたインストール
では、どのOSを使うかによって、インストール方法が異なるので、見ていきましょう
1. Windowsの場合
Windows をお使いの場合、Excel ファイルの読み書きのために以下のパッケージが必要です。
インストールするには、次の構文を入力してください。
conda install openpyxl |
2. Ubuntu
LinuxディストリビューションはPythonに適していますが、それでもシステムのバグやインストールの不備によるエラーに遭遇する可能性があります。
Ubuntuでopenpyxlをインストールする安全で正しい方法は、以下の通りです。
ターミナルに以下の構文を入力します。
Python2の場合。
pip install openpyxl pip install --user xlsxwriter pip install xlrd==1.2.0 |
Python3の場合
sudo apt-get install python-openpyxl |
Python2の場合:
sudo apt-get install python3-openpyxl |
上記のケースは、冒頭の例と同様です。
Python2用のopenpyxlをPython3用のシステムにインストールしたために、誤ったインストールが行われることが多々あります。
Pythonのバージョンを確認することで、ほとんどの問題は解決します。
スクリプトパスエラー
正しくインストールした後でも、openpyxlが’modulenotfounderror’を投げることが何度もあります。
パッケージは正しくインストールされたのに、パッケージマネージャが別のディレクトリにインストールしてしまうからです。
これは主にいくつかの理由で起こります。
- Python スクリプトが別のディレクトリにあり、パッケージマネージャがそれらを別のディレクトリにインストールした。
- 最近の更新でディレクトリの名前やパスが変更された可能性があります。
- 手動インストールで複数のスクリプトフォルダが作成された可能性があります。
- システムが正しいスクリプトディレクトリを特定できない。
この問題を解決するには、ターミナルで次の構文を使用します。
import sys sys.append(full path to the site-package directory) |
Note: 上記のコードは、与えられたパスディレクトリからインポートパッケージを検索するためにPythonをリダイレクトします。
これは恒久的な解決策ではなく、むしろ好転させるための方法です。
この問題を完全になくすには、すべてのスクリプトディレクトリを特定し、それらを ‘path’ (パッケージがインストールされているスクリプトディレクトリのパス) に追加する必要があるため、長いプロセスが必要になります。
このようなエラーを避けるためには、スクリプトがインストールされる場所を特定し、覚えておくことが重要です。
どこで変位が起こったかを知ることで、問題の半分は解決し、残りの半分はあなたのpythonのバージョンと互換性のあるパッケージをインストールすることで解決します。
結論
この記事では、openpyxl で人々が直面するエラーと、それを解決するためのさまざまな方法について学びました。
これらの方法は openpyxl だけでなく、’filenotfounderror’ を表示する多くの Python ライブラリパッケージで有効です。
ほとんどの場合、エラーは互換性のないバージョン、間違ったインストール、間違ったディレクトリへのインストールが原因で発生します。