当两者存在相同的命令时,在 jupyter 中使用 `%` 而不是 `!` 有优势吗?
Is there an advantage of using `%` over `!` in jupyter when the same command exists for both?
例如当我使用!pip install ...
时VSCode建议我使用%pip install ...
。同样,!
和 %
都有一个版本 mv
。使用一个比另一个有优势吗?
主要区别在于,感叹号 !
应该写在 IPython 笔记本中,然后要在笔记本中 运行 的任何 shell 命令之前。查看文档中的 Shell Assignment 以获得更多解释。
While Magics are specific to and provided by the IPython kernel. To
work properly, Magics must use a syntax element which is not valid in
the underlying language. For example, the IPython kernel uses the %
syntax element for Magics as %
is not a valid unary operator in
Python.
除此之外,您还可以使用 IPython 创建和注册自己的魔法。您还可以在 PyPI 上找到许多用户定义的魔法。
所以我们可以说魔法 %
命令比标准 shell 命令提供了更多在 IPython 内核中定义的功能。
有关魔术命令的更多信息,请查看此 official reference。
是的,%pip
将在大多数边缘情况下正确解析适当的虚拟环境(当前内核使用的虚拟环境),而 !pip
不会,您可能最终会安装软件包在不正确的位置。
部分参考资料:
例如当我使用!pip install ...
时VSCode建议我使用%pip install ...
。同样,!
和 %
都有一个版本 mv
。使用一个比另一个有优势吗?
主要区别在于,感叹号 !
应该写在 IPython 笔记本中,然后要在笔记本中 运行 的任何 shell 命令之前。查看文档中的 Shell Assignment 以获得更多解释。
While Magics are specific to and provided by the IPython kernel. To work properly, Magics must use a syntax element which is not valid in the underlying language. For example, the IPython kernel uses the
%
syntax element for Magics as%
is not a valid unary operator in Python.
除此之外,您还可以使用 IPython 创建和注册自己的魔法。您还可以在 PyPI 上找到许多用户定义的魔法。
所以我们可以说魔法 %
命令比标准 shell 命令提供了更多在 IPython 内核中定义的功能。
有关魔术命令的更多信息,请查看此 official reference。
是的,%pip
将在大多数边缘情况下正确解析适当的虚拟环境(当前内核使用的虚拟环境),而 !pip
不会,您可能最终会安装软件包在不正确的位置。
部分参考资料: