Jupyter notebook中的感叹号!魔法命令介绍
背景:
之前用过anaconda conda创建过虚拟环境,也用过venv虚拟环境,也搭建过Jupyter notebook环境,但是今天看到下列的代码,不清楚感叹号代表什么。
如:
!python -m venv signlang_env
解答:
!代表告诉 Jupyter Notebook 将后面的内容作为系统命令执行,在Jupyter中创建一个干净的虚拟环境。
详解:
在 Jupyter Notebook 中,命令前的感叹号(!
)是一个魔术命令(Magic Command),用于直接在 Notebook 单元格中执行系统命令(即命令行指令)。它允许你在 Python 代码环境中调用操作系统的功能,无需切换到终端。
作用解释
当你看到:
!python -m venv signlang_env
这行代码的含义是:
!
:告诉 Jupyter Notebook 将后面的内容作为系统命令执行。python -m venv signlang_env
:调用 Python 的venv
模块创建一个名为signlang_env
的虚拟环境。
等效操作
这行代码等价于在终端中直接运行:
python -m venv signlang_env
其他常用的魔术命令
%cd
:切换当前工作目录。%cd /path/to/directory
%ls
或!ls
:列出当前目录的文件(Windows 系统使用!dir
)。%ls
%pip install package
:安装 Python 包(等价于!pip install package
)。%pip install pandas
为什么使用 !
?
- 便捷性:无需离开 Notebook 即可执行命令行操作。
- 环境一致性:确保命令在与 Notebook 相同的环境中执行。
- 结果可视化:命令的输出会直接显示在单元格下方。
注意事项
- 魔术命令仅在 Jupyter Notebook/Lab 中有效,在普通 Python 脚本中会导致语法错误。
- 使用
!
执行的命令不会影响 Notebook 的 Python 变量和状态(除非显式将输出赋值给变量)。