Search code examples
pythonpipzshautobahnmsgpack

zshell pip can't find package autobahn[serialization]


I was trying to install serialization variant of autobahn. However, when I do that in zsh, I get an error.

zsh: no matches found: autobahn[serialization]

However, as soon as I use bash, it works. Below is my command line log:

kapil@kapil-linux ~                                                                                                                                                                                 

    [23:59:19] 
> $ pip install autobahn[serialization]                                                                                                                                                                           
zsh: no matches found: autobahn[serialization]

kapil@kapil-linux ~                                                                                                                                                                                     [23:59:25] 
> $ bash                                                                                                                                                                                                          
[kapil@kapil-linux ~]$ pip install autobahn[serialization]
Collecting autobahn[serialization]
  Using cached autobahn-0.16.0-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): six>=1.10.0 in ./anaconda2/lib/python2.7/site-packages (from autobahn[serialization])
Requirement already satisfied (use --upgrade to upgrade): txaio>=2.5.1 in ./anaconda2/lib/python2.7/site-packages (from autobahn[serialization])
Requirement already satisfied (use --upgrade to upgrade): u-msgpack-python>=2.1; extra == "serialization" in ./anaconda2/lib/python2.7/site-packages (from autobahn[serialization])
Requirement already satisfied (use --upgrade to upgrade): py-ubjson>=0.8.4; extra == "serialization" in ./anaconda2/lib/python2.7/site-packages (from autobahn[serialization])
Requirement already satisfied (use --upgrade to upgrade): cbor>=1.0.0; extra == "serialization" in ./anaconda2/lib/python2.7/site-packages (from autobahn[serialization])
Installing collected packages: autobahn
Successfully installed autobahn-0.16.0
[kapil@kapil-linux ~]$ pip install --upgrade --force-reinstall autobahn[serialization]
Collecting autobahn[serialization]
  Using cached autobahn-0.16.0-py2.py3-none-any.whl
Collecting six>=1.10.0 (from autobahn[serialization])
  Using cached six-1.10.0-py2.py3-none-any.whl
Collecting txaio>=2.5.1 (from autobahn[serialization])
  Using cached txaio-2.5.1-py2.py3-none-any.whl
Collecting u-msgpack-python>=2.1; extra == "serialization" (from autobahn[serialization])
Collecting py-ubjson>=0.8.4; extra == "serialization" (from autobahn[serialization])
Collecting cbor>=1.0.0; extra == "serialization" (from autobahn[serialization])
Installing collected packages: six, txaio, u-msgpack-python, py-ubjson, cbor, autobahn
  Found existing installation: six 1.10.0
    Uninstalling six-1.10.0:
      Successfully uninstalled six-1.10.0
  Found existing installation: txaio 2.5.1
    Uninstalling txaio-2.5.1:
      Successfully uninstalled txaio-2.5.1
  Found existing installation: u-msgpack-python 2.1
    Uninstalling u-msgpack-python-2.1:
      Successfully uninstalled u-msgpack-python-2.1
  Found existing installation: py-ubjson 0.8.5
    Uninstalling py-ubjson-0.8.5:
      Successfully uninstalled py-ubjson-0.8.5
  Found existing installation: cbor 1.0.0
    Uninstalling cbor-1.0.0:
      Successfully uninstalled cbor-1.0.0
  Found existing installation: autobahn 0.16.0
    Uninstalling autobahn-0.16.0:
      Successfully uninstalled autobahn-0.16.0
Successfully installed autobahn-0.16.0 cbor-1.0.0 py-ubjson-0.8.5 six-1.10.0 txaio-2.5.1 u-msgpack-python-2.1
[kapil@kapil-linux ~]$ exit
exit

kapil@kapil-linux ~                                                                                                                                                                                      [0:00:27] 
> $ pip install autobahn[serialization]                                                                                                                                                                           
zsh: no matches found: autobahn[serialization]

I don't understand what might be going on with zsh.

Also, here is the output of my which pip:

> $ which pip                                                                                                                                                                                                     
~/anaconda2/bin/pip                                                                                                                                                                                                                
kapil@kapil-linux ~                                                                                                                                                                                      [0:18:24] 
> $ bash                                                                                                                                                                                                          
[kapil@kapil-linux ~]$ which pip
~/anaconda2/bin/pip
[kapil@kapil-linux ~]$ 

Solution

  • Square brackets are special characters in zsh, you can escape them with backslash:

    pip install autobahn\[serialization\]
    

    Or escape square brackets by default in zsh.