Jupyter笔记本,如何在正确的conda环境中执行系统shell命令?

2024-01-11

我目前在使用 jupyter 笔记本和系统 shell 命令时遇到一些问题。我使用 nb_conda_kernels 能够从基础环境中启动的 jupyter 笔记本访问我的所有 conda 环境,这在我的大多数用例中都完美运行。为了简单起见,我们假设我有 2 个环境,一个是基本环境,另一个是名为 work_env。我在基础环境中启动 jupyter 笔记本,并在打开我正在处理的笔记本时选择 work_env 内核。

今天我看到了这一行:

! pip install kaggle --upgrade

执行单元后(正确激活 work_env 内核),pip 在我的基础环境中安装了 kaggle 包。预期的结果是在我的 work_env 中安装这个包。关于如何使 shell 命令在 jupyter Notebook 的“正确”环境中执行有什么想法吗?


尝试指定当前的 python 解释器。

import sys

!$sys.executable -m pip install kaggle --upgrade

sys.executable返回当前正在运行的 python 解释器的路径。$将该变量传递到您的终端(!在终端上运行命令)。

别名扩展 Python 变量,就像系统调用一样,使用 !或者 !! do:扩展所有以“$”为前缀的表达式。有关语义规则的详细信息,请参阅 PEP-215

from https://ipython.org/ipython-doc/3/interactive/magics.html https://ipython.org/ipython-doc/3/interactive/magics.html

-m用于运行库模块(pip在这种情况下)作为脚本(检查python -h)。跑步pipas a script 保证您使用的是链接到当前 python 解释器的 pip,而不是系统变量指定的 pip。

因此,通过这种方式,您可以确定 pip 正在安装与您正在使用的同一 python 解释器(安装在您当前环境中)的依赖项,这样就可以了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jupyter笔记本,如何在正确的conda环境中执行系统shell命令? 的相关文章

随机推荐