Setuptools,在一行中明确地分隔多个命令调用

时间:2013-04-29 12:46:55

标签: python setuptools

我想在我的setup.py文件中为我的项目编写多个测试命令的别名。

但是,当我尝试在一行上运行多个命令时遇到问题,当在其他命令之前调用'nosetests'命令时。

这有效

$ python setup.py lint nosetests
pylint output
nosetests output

但如果我交换命令,我只会输出nosetests

我认为lint命令被nosetests参数解析器吃掉了。

$ python setup.py nosetests lint
nosetests output
# No pylint output

所以,我想知道是否有办法明确地分离命令?

由于

1 个答案:

答案 0 :(得分:0)

新答案

从它的外观来看,setuptools假设所有选项都以--开头,并且所有命令都不以--开头,因此没有明确的方法来分隔命令,因为它是不必要的

如果自定义nosetests命令接受lint作为选项,那么这是该命令中的一个错误,它应该忽略任何不以--开头的内容。

但是,有可能使用--来表示选项结束的传统Unix惯用法来解决这个问题,所以以下内容可能会有效......

$ python setup.py nosetests -- lint

...否则你要么必须修复bug,要么找到使用该特定自定义命令的替代方法。

旧答案

来自the docs ...

  

setup.py的基本用法是:

     

$ python setup.py <some_command> <options>

...所以听起来它在你的第一个例子中执行这两个命令的事实是一个错误或侥幸。

将它们作为两个单独的命令运行可能是最安全的......

$ python setup.py nosetests && python setup.py lint
nosetests output
pylint output