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メソッドを使用しないことを root
お sudo
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
ディクショナリに追加できます。