获取安装上传递的额外参数

时间:2017-10-05 07:01:40

标签: python

与此问题相关: Specify extras_require with pip install -e

有一些方法可以让用户以编程方式传递参数吗?

即。当某个用户执行时:

pip install pkg[extra]

我想捕获用户放置的额外参数并在setup.py中执行某些操作。

1 个答案:

答案 0 :(得分:0)

extra_require实际上不应该以这种方式使用,它只指定依赖项。

如果你想提供一个自定义选项,你应该写这样的东西

from setuptools import setup
from setuptools.command.install import install

class InstallCommand(install):
    user_options = install.user_options + [
        ('someopt', None, None),    # a 'flag' option
        ('someval=', None, None)    # an option that takes a value
    ]

    def initialize_options(self):
        install.initialize_options(self)
        self.someopt = None
        self.someval = None

    def finalize_options(self):
        super(InstallCommand, self).finalize_options()
        assert self.someopt
        assert self.someval == 'asdf'

setup(
    name="pkg",

    cmdclass={
        'install': InstallCommand,
    },
)

然后可以用作

./setup.py install --someopt --someval=asdf

或使用pip

pip install pkg --install-option='--someopt' --install-option='--someval=asdf'

linklink