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
,您可以使用
pip install numpy
警告:强烈建议仅使用官方 Ubuntu 存储库安装 python-modules,并且不要以超级用户身份使用 pip
方法(即,以 root
身份或使用 sudo
)。在某些情况下,它可能会通过破坏系统 python 使您的系统无法使用。
如果我们不想意外地导入有问题的模块(这会在 try
语句中发生),我们可以使用 sys.modules
来测试之前安装和导入的模块。
在python shell问题上。
>>> import sys
然后测试已安装的模块。
>>> 'numpy' in sys.modules
True
>>> 'scipy' in sys.modules
False
请注意,只有之前导入的模块在此测试中为 True
,所有其他模块(即使已安装)都会导致 False.
try
import
语句的另一种方法是调用内置的 help()
函数。这不会为未安装的模块提供文档,例如
>>> help('scipy')
no Python documentation found for 'scipy'
可以用以下方法中断已安装模块的非常长的帮助文档的输出Q.
现在要安装缺少的模块,建议使用Ubuntu 包管理(而不是 Python pip 方式),因为我们需要 root 访问权限,并且还可以防止弄乱我们严重依赖 Python 的系统。对于有问题的模块,例如:
sudo apt-get install python-scipy ## for Python2
sudo apt-get install python3-scipy ## for Python3
安装后,我们可以通过导入一次将它们添加到 sys.modules
字典中。