在对代码进行更改之后,我有几个步骤应该在分发应用程序之前运行。
通过将多个命令参数传递给
setup.py
脚本:
$ python setup.py clean test lint sdist build_doc upload
如果工具不提供
distutils
例如,命令
pylint
没有,所以你需要
setuptools-lint
的程序包
python setup.py lint
工作。
可以使用与节点项目类似的方法为命令集声明别名。创建
setup.cfg
文件旁边的
设置。py公司
并添加别名:
# setup.cfg
[aliases]
ci=clean test lint sdist build_doc upload
现在,上面的命令与
$ python setup.py ci
至于其他要求,可能
Pipenv
是最具可比性的工具
node
. 它具有自动创建和激活特定于项目的虚拟环境、安装来自
Pipfile
,锁定依赖项版本(类似于
shrinkwrap
命令),等等。
编辑
您还可以编写自定义命令并将其绑定到安装脚本中。示例
ls
运行的命令
ls -l
:
from distutils.core import Command
from setuptools import setup
class Ls(Command):
user_options = []
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
self.spawn(['ls', '-l'])
setup(
name='spam',
version='0.1',
author='nobody',
author_email='nobody@nowhere.com',
packages=[],
cmdclass={'ls': Ls,},
)
现在运行
python setup.py ls
要调用新命令,请执行以下操作:
$ python setup.py ls
running ls
ls -l
total 8
drwx------ 3 hoefling wheel 96 16 Dez 19:47
com.apple.launchd.1X84ONyuu4
drwx------ 3 hoefling wheel 96 16 Dez 19:47
com.apple.launchd.XbjjBY44Mf
drwxr-xr-x 2 root wheel 64 16 Dez 19:47 powerlog
-rw-r--r-- 1 hoefling wheel 405 16 Dez 19:50 setup.py