Why does pip need an exclamation point to use in iPython?
This is actually not specific to pip
, but really any shell command from the iPython notebook. You'll notice other shell commands also work (from the docs):
In[1]: !pwd
/User/home/
Change directory:
In[1]: !cd /var/etc
This is simply shorthand that the good folks at Jupyter have included. See Shell Assignment in the docs for more of an explanation.
When Python behaves as a system level command we use this exclamatory mark. Example: !python '/content/test.py'-> to run python file named test.py within a colab notebook