背景:
之前用過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 變量和狀態(除非顯式將輸出賦值給變量)。