我想知道是否可以在IPython shell中安装Python包,而无需离开shell。
我想知道是否可以在IPython shell中安装Python包,而无需离开shell。
这个答案已过时:请查看被接受的回答,其中提供了在现代jupyter中更简单的方法。
aculich的答案并不适用于所有情况,例如:
python
二进制文件运行它正确的命令是:
import sys
!{sys.executable} -m pip install requests
import pip
pip.main(['install', 'package_name'])
以上基于shell的答案只有在您的$PATH环境变量中存在pip
时才能工作(例如在Windows系统中)。
我喜欢hurfdurf的回答,但是仅靠iPython可能无法识别新模块(特别是如果它添加到库路径中)。这是一个带有iPython 3的增强示例:
import pip
pip.main(['install','pygame'])
# import pygame at this point can report ImportError: No module named 'pygame'
import site
site.main()
# now with refreshed module path...
import pygame
!pip install packagename
或类似的代码并不是真正的答案,如果我们有多个 Python 版本,而期望的 Python 版本不是系统默认版本。这样的代码只会在系统默认的 Python 版本上安装包。我认为,以下代码会很有帮助:
import pip
if int(pip.__version__.split('.')[0])>9:
from pip._internal import main
else:
from pip import main
main(['install', 'package_name']) # the strings in the square brackets could be specified as needed
这段代码是基于pip版本编写的,可以在控制台中运行,并将应用于由控制台设置路径的任何python版本;可以通过import sys; sys.version, sys.path
查看此python版本规范。我不确定这是否是最佳方法,但上述代码适用于我的目的,而!pip install packagename
或%pip install packagename
则不适用(其中python:2.7.9,pip:19.2.3,IPython QtConsole:3.1.0)。
!pip install packagename
。 - Thomas K!
并解释了!!
、%sc
和%sx
。我打算建议 iPython 维护者更新%quickref
文档,明确提到!
和!!
作为替代品! - aculich!pip install
命令时,该软件包仅安装在3.5版本上。 - EntryLevelR