如何从 IPython 中安装 Python 包?

Posted

技术标签:

【中文标题】如何从 IPython 中安装 Python 包?【英文标题】:How to install a Python package from within IPython? 【发布时间】:2012-01-29 14:05:42 【问题描述】:

我想知道是否可以在不离开 IPython shell 的情况下安装 python 包。

【问题讨论】:

【参考方案1】:

请参阅@Chronial 中的the accepted answer,这是在现代 ipython 或 jupyter(截至 2018 年)中执行此操作的最佳方法是使用 the %pip magic:

%pip install my_package

以下 2011 年的答案现已过时:请参阅 the accepted answer,了解在现代 jupyter 中执行此操作的更简单方法。

您可以像这样使用! 前缀:

!pip install packagename

! 前缀是 %sc 命令运行 shell 命令的简写。

您还可以使用!! 前缀,它是%sx 命令的简写,以执行shell 命令并捕获其输出(默认保存到_ 变量中)。

【讨论】:

其实,你可以在命令前加一个 !例如!pip install packagename. @ThomasK 是的,你是对的!我更新了我的答案以使用! 并解释了!!%sc%sx。我将建议 iPython 维护者更新%quickref 文档,明确提及!!! 作为替代! 太好了,谢谢。我刚刚看到您的拉取请求(我是 IPython 开发人员之一;)) @ThomasK 太棒了!很高兴看到 IPython 开发人员在这里很活跃。 如何指定python版本?例如,我的笔记本中有 Python 2.7 和 3.5 内核。当我使用 !pip install 时,该软件包仅安装在 3.5 版中。【参考方案2】:

此答案已过时:请参阅the accepted answer,了解在现代 jupyter 中更简单的方法。


aculich's answer 并非在所有情况下都有效,例如:

如果你在 venv 中安装了 ipython/jupyter 并直接通过 venv 的 python 二进制运行它 如果您有多个 python 版本,例如EntryLevelR。

正确的命令是:

import sys
!sys.executable -m pip install requests

【讨论】:

【参考方案3】:
import pip
pip.main(['install', 'package_name'])

除非pip 在您的 $PATH 中(例如在 Windows 上),否则上述基于 shell 的答案不起作用。

【讨论】:

【参考方案4】:

在现代 ipython 或 jupyter 中执行此操作的最佳方法是使用 the %pip magic:

%pip install my_package

【讨论】:

Chronial,在my updated answer 中感谢您,我更新了它,因为我的旧答案获得了最多的支持,因此人们可以快速获得最新的解决方案。【参考方案5】:

我喜欢 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

【讨论】:

【参考方案6】:

如果您使用Conda Package Manager,以下语法可能适合您的需要

$ conda install -c conda-forge <targetPackageName>

https://pypi.org/project/earthpy/

【讨论】:

【参考方案7】:

!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).

【讨论】:

以上是关于如何从 IPython 中安装 Python 包?的主要内容,如果未能解决你的问题,请参考以下文章

如何在win7中安装ipython,并且设置环境变量

直接从git在虚拟环境中安装python包[重复]

如何在 Google Dataproc 集群中安装 python 包

如何在 Pycharm (Python 3.8 / 3.9) 中安装 YAML 包?

如何在 Google 的 Colab 中安装 Python 包?

在多个环境中使用一个 IPython