@@ -107,10 +107,11 @@ Classic ``setup_requires``
107
107
--------------------------
108
108
109
109
If you want to support old versions of Pip with the classic
110
- ``setup_requires=["pybind11"] `` keyword argument to setup, which triggers a
111
- two-phase ``setup.py `` run, then you will need to use something like this to
112
- ensure the first pass works (which has not yet installed the ``setup_requires ``
113
- packages, since it can't install something it does not know about):
110
+ ``setup_requires=["pybind11"], install_requires=["pybind11"] `` keyword arguments
111
+ to setup, which triggers a two-phase ``setup.py `` run, then you will need to
112
+ use something like this to ensure the first pass works (which has not yet
113
+ installed the ``setup_requires `` packages, since it can't install something it
114
+ does not know about):
114
115
115
116
.. code-block :: python
116
117
@@ -124,8 +125,19 @@ It doesn't matter that the Extension class is not the enhanced subclass for the
124
125
first pass run; and the second pass will have the ``setup_requires ``
125
126
requirements.
126
127
127
- This is obviously more of a hack than the PEP 518 method, but it supports
128
- ancient versions of Pip.
128
+ .. note ::
129
+
130
+ This is obviously more of a hack than the PEP 518 method. It requires that
131
+ the package be listed in ``install_requires `` too, which means that users
132
+ will also have pybind11 available after your package is installed,
133
+ regardless of wether they had to build it, and makes it inadvisable to lock
134
+ the version (especially with the late-2020 pip solver), while the PEP 518
135
+ method only makes the dependency available during the build process, so the
136
+ version can easily be pinned. This method also tends to not work in
137
+ cibuildwheel, conda, and other build systems, since they build with
138
+ ``--no-deps `` active (which does not affect PEP 518).
139
+
140
+ Under most circumstances, PEP 518 is a much better solution.
129
141
130
142
.. _setup_helpers-copy-manually :
131
143
0 commit comments