Fix Python – zsh: no matches found: requests[security]


Asked By – Kristen

I am trying to run a python urllib2 script and getting this error:

InsecurePlatformWarning: A true SSLContext object is not available.
This prevents urllib3 from configuring SSL appropriately and may cause
certain SSL connections to fail. For more information, see

After googling the error the solution, on stack overflow is to download requests’ security package:

pip install requests[security]

But when I run that I get the error…

zsh: no matches found: requests[security]

Anyone know why zsh isn’t picking up this library, it installs/upgrades requests just fine, I don’t know why this isn’t working

I am running this on a Debian Server…

Now we will see solution for issue: zsh: no matches found: requests[security]


zsh uses square brackets for globbing / pattern matching.

That means that if you need to pass literal square brackets as an argument to a command, you either need to escape them or quote the argument like this:

pip install 'requests[security]'

If you want to disable globbing for the pip command permanently, you can do so by adding this to your ~/.zshrc:

alias pip='noglob pip'

This question is answered By – Lukas Graf

This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0