I see more and more commands like this:
$ pip install "splinter[django]"
What do these square brackets do?
I see more and more commands like this:
$ pip install "splinter[django]"
What do these square brackets do?
The syntax that you are using is:
pip install "project[extra]"
In your case, you are installing
the splinter
package which has the added support for django
. The square brackets ([]
) are not specific syntax, just convention. Really, you are installing the package named: "splinter[django]"
.
An explanation from @chetner
:
The command
pip install splinter django
would install two packages namedsplinter
anddjango
.splinter[django]
, on the other hand, installs a variant of thesplinter
package which contains support fordjango
. Note that it has nothing to do with thedjango
package itself, but is just a string defined by thesplinter
package for a particular feature set that gets enabled.
Pretty sure these are setuptools extras:
https://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-extras-optional-features-with-their-own-dependencies
Sometimes a project has “recommended” dependencies, that are not required for all uses of the project. For example, a project might offer optional PDF output if ReportLab is installed, and reStructuredText support if docutils is installed. These optional features are called “extras” ...
This is exactly the list from the setup.py
file for the project in question:
"django": ["Django>=1.7.11;python_version<'3.0'", "Django>=2.0.6;python_version>'3.3'", "lxml>=2.3.6", "cssselect", "six"],