如何在自定义cmdclass命令中从pip安装中获得额外收益?

时间:2019-04-17 22:54:33

标签: python python-3.x pip setuptools

如果我有一个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 installsetup.py参数中的setuptools命令覆盖中的命令cmdclass中使用附加内容?

换句话说,如果用户运行命令:

  • $ pip install -e .-通过cmdclass中的setup.py覆盖获取 pip安装中没有使用任何其他功能的信息

    < / li>
  • $ pip install -e .[url]-通过cmdclass中的setup.py覆盖获取额外的url已用于点子安装的信息,以便在安装后脚本中进行其他工作

我试图通过cmdclass覆盖以下命令,但是没有一个类给我有关安装中使用了哪些附加功能的任何信息:

  • setuptools.command.install

  • setuptools.command.build

  • setuptools.command.egg_info

setuptoolsdistutils上找不到任何相关的文档。

0 个答案:

没有答案