如果我有一个setup.py
,看起来像这样:
from setuptools import setup
from setuptools.command.install import install
class CustomInstallCommand(install):
def run(self):
install.run(self)
# no information on used `extras` in `pip install`
setup(
name='myapp',
version='1.0.0',
install_requires=[
'unidecode >= 1.0.0, < 2.0.0',
'pyyaml >= 4.0, <= 5.1'
],
extras_require={
'url': ['requests >= 2.18, < 3.0']
},
cmdclass={
'install': CustomInstallCommand
}
)
是否有可能在pip install
到setup.py
参数中的setuptools命令覆盖中的命令cmdclass
中使用附加内容?
换句话说,如果用户运行命令:
$ pip install -e .
-通过cmdclass
中的setup.py
覆盖获取 pip安装中没有使用任何其他功能的信息
$ pip install -e .[url]
-通过cmdclass
中的setup.py
覆盖获取额外的url
已用于点子安装的信息,以便在安装后脚本中进行其他工作
我试图通过cmdclass
覆盖以下命令,但是没有一个类给我有关安装中使用了哪些附加功能的任何信息:
setuptools.command.install
setuptools.command.build
setuptools.command.egg_info
在setuptools
和distutils
上找不到任何相关的文档。