I am looking for a way to express something that resembles NPM's peerDependencies
in setuptools
.
My Python library is a plugin that should work with another Python library that I don't want to have as a dependency. Instead I'd like my end user to be responsible for it and install it by themselves. I can't find a proper way to express this in Python's setuptools
(or any other build for that matter), to let my user "know" about the library
From my current understanding, this is a close approximation between the tools:
NPM | setuptools |
---|---|
dependencies |
install_requires |
optionalDependencies |
extras_require |
peerDependencies |
??? |
I have two possible solutions, both of which I find lacking:
Use
extras_require
anywaySpecify my requirements under an
extras_require
will do the job, but it feels like abusing it, because the user shouldn't install these extras.Just document it
Inform the user that they need to install that package separately. Feels lame too