command line

Pythonにモジュールがインストールされているかどうかを確認し、必要であればインストールする方法

ターミナルでPythonを起動した後、Pythonに存在するモジュールが何であるかをどのように知ることができますか?例えば、NumPyとSciPyのモジュールを学ぶ必要があるとします。

  • インストールされていない場合、どのようにインストールするのですか?
  • すでにインストールされているかどうかは、どうすればわかるのでしょうか?

Pythonモジュールがシステムにインストールされているかどうかを確認する方法:ターミナルで非常に簡単なテストを実行できます。

$ python -c "import math"
$ echo $?
0                                #数学モジュールがシステムに存在します

$ python -c "import numpy"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named numpy
$ echo $?
1                                #numpyモジュールがシステムに存在しません

インストールされていない場合、どのようにインストールするのですか?

リポジトリからそれぞれのパッケージをダウンロードすることで特定のモジュールをインストールできます。たとえば、 scipy を次のようにインストールできます。

sudo apt-get install python-scipy ## for Python2
sudo apt-get install python3-scipy ## for Python3

または、以下のコメントでZack Titanが提案しているように、 python-pip を使用してpythonモジュールをインストールすることもできます。numpyをインストールするには、 numpy を使用できます。

pip install numpy

警告:公式のUbuntuリポジトリのみを使用してpython-modulesをインストールし、スーパーユーザーとして(つまり、rootまたはsudoを使用して)pipメソッドを使用しないことrootsudo pip ます。場合によっては、システムpythonを壊して、システムを使用できなくすることがあります。

pip を使用してパッケージをローカル仮想環境にインストールする方法。




問題のモジュールを不要にインポートしたくない場合(これは try ステートメントで発生します)、 sys.modules を使用して、以前にインストールれてインポ​​ートされたモジュールをテストできます。

pythonシェルの問題で。

>>> import sys

次に、インストールされているモジュールのテストを行います。

>>> 'numpy' in sys.modules
True
>>> 'scipy' in sys.modules
False

このテストでは、以前にインポートされたモジュールのみが True になり、他のすべてのモジュール(インストールされている場合でも)は False.

import ステートメントを try 別の方法は、組み込みの help() 関数を呼び出すことです。これは、インストールされていないモジュールのドキュメントを提供しません。

>>> help('scipy')
no Python documentation found for 'scipy'

インストールされたモジュールの非常に長いヘルプドキュメントの出力は、以下の方法で中断することができます。Q.

不足しているモジュールをインストールするには、ルートアクセスが必要であり、Pythonに大きく依存するシステムを台無しにすることを防ぐために、 Ubuntuパッケージ管理(Python pipの方法ではなく)を使用することをお勧めします。問題のモジュールの場合、これはたとえば次のようになります。

sudo apt-get install python-scipy ## for Python2
sudo apt-get install python3-scipy ## for Python3

インストール後、一度インポートすることで sys.modules ディクショナリに追加できます。