如何在自定义cmdclass命令中从pip install中获取附加功能?

2024-09-28 23:28:06 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有一个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
  }
)

是否可以在setuptools的命令pip install中的命令中使用额外的命令setup.pycmdclass参数中?在

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

  • $ pip install -e .-通过cmdclass重写setup.py获取在pip安装中没有使用任何附加功能的信息

  • $ pip install -e .[url]-通过cmdclass重写setup.py获取pip安装中使用了额外url的信息,以便在安装后脚本中执行额外的工作

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

  • setuptools.command.install

  • setuptools.command.build

  • setuptools.command.egg_info

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


Tags: installpiprunfrompyimport命令self