[英]Custom distribution option in setup.py
How to pass custom key-value pairs in setup()
parameters? 如何在setup()
参数中传递自定义键值对? I need them for a custom build_scripts
step. 我需要它们来执行自定义的build_scripts
步骤。
from distutils.core import setup
from somescripts import build_scripts
setup(name='somescripts',
version=__version__,
cmdclass= {
'build_scripts': build_scripts,
},
custom_pairs={
'compile_modules': True,
'use_scons': True,
'modules': [f for f in glob('scripts/[!_]*.spy')],
},
)
This gives "UserWarning: Unknown distribution option" in setup.py install
(which turns into error with --strict
) 这会在setup.py install
提供“ UserWarning:未知的分发选项”(使用--strict
会出错)
c:\python27\Lib\distutils\dist.py:267: UserWarning: Unknown distribution
option: 'custom_pairs'
warnings.warn(msg)
UPDATE : 更新 :
build_scripts
at all if scripts
kwarg is empty 如果scripts
kwarg为空,则distutils根本不调用build_scripts
Found the way myself. 自己找到了路。
from distutils.command.build_scripts import build_scripts as base
from distutils.core import setup
# patch distutils so that it won't skip "build_scripts"
# step if `scripts` list is empty
from distutils.dist import Distribution
def custom_has_scripts(self):
return True
Distribution.has_scripts = custom_has_scripts
class build_scripts(base):
def initialize_options(self):
self.compile_modules = None
self.use_scons = None
self.modules = None
def run(self):
for module in self.modules:
# generate scripts
pass
setup(name='somescripts',
version=__version__,
cmdclass= {
'build_scripts': build_scripts,
},
options={
'build_scripts':{
'compile_modules': True,
'use_scons': True,
'modules': [f for f in glob('scripts/[!_]*.spy')],
},
},
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.