安装时传递额外参数

4
与此问题相关: 使用pip install -e指定extras_require

有没有办法以编程方式获取用户传递的额外参数?
例如,当某个用户执行以下操作时:
pip install pkg[extra]

我希望能捕获用户输入的额外参数,并在setup.py中进行处理。

1个回答

1

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'

{{链接1:link}}, {{链接2:link}}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接