Как передать --debug в build_ext при вызове setup.py install? - PullRequest
3 голосов
/ 09 мая 2020

Когда я выполняю команду python setup.py install или python setup.py develop, она выполняет команду build_ext как один из шагов. Как я могу передать ему параметр --debug, как если бы он был вызван как python setup.py build_ext --debug?

ОБНОВЛЕНИЕ Вот setup.py, очень похожий на мой: https://github.com/pybind/cmake_example/blob/11a644072b12ad78352b6e6649db9dfe7f406676/setup.py#L43

Я хотел бы вызвать python setup.py install, но изменить свойство debug в экземпляре класса build_ext на 1.

Ответы [ 2 ]

5 голосов
/ 14 мая 2020

A. Если я не ошибаюсь, этого можно добиться, добавив к файлу setup.cfg вместе с файлом setup.py следующее:

[build_ext]
debug = 1

B.1. Для большей гибкости, я считаю, должно быть возможно явное указание в командной строке:

$ path/to/pythonX.Y setup.py build_ext --debug install

B.2. Также, если я правильно понял должна быть возможность определять так называемые псевдонимы

# setup.cfg
[aliases]
release_install = build_ext install
debug_install = build_ext --debug install
$ path/to/pythonX.Y setup.py release_install
$ path/to/pythonX.Y setup.py debug_install

Ссылки

1 голос
/ 14 мая 2020

Вы можете использовать что-то вроде ниже, чтобы сделать это

from distutils.core import setup
from distutils.command.install import install
from distutils.command.build_ext import build_ext

class InstallLocalPackage(install):
    def run(self):
        build_ext_command = self.distribution.get_command_obj("build_ext")
        build_ext_command.debug = 1
        build_ext.run(build_ext_command)
        install.run(self)

setup(
    name='psetup',
    version='1.0.1',
    packages=[''],
    url='',
    license='',
    author='tarunlalwani',
    author_email='',
    description='',
    cmdclass={
        'install': InstallLocalPackage
    }
)
...