使setup.py clean更有用。
setupext-janitor的Python项目详细描述
扩展clean命令以删除 发展进程。
等等…为什么?什么??
因此setup.py clean对于c扩展或 任何其他利用setup.py build命令的东西。 纯python包生成它们自己的一组工件 在源代码树上。这个包扩展了clean命令,以便 它也会删除以下工件:
- 由sdist和^{tt5}生成的分发目录$ 命令
- 顶层.egg info和.egg目录,由setup.py创建
- 本地虚拟环境目录
- \u pycache目录
安装
setuptools包包含许多有趣的方法,其中 它可以扩展。使用此扩展的最简单方法是安装 它进入环境并使用它。包扩展了clean 通过安装distutils extension:
$ pip install -q 'setupext-janitor' $ ./setup.py clean --dist --eggs running clean removing './my_package.egg-info' (and everything under it) removing 'dist' (and everything under it)
还可以使用 setup_requires和cmdclass关键字参数到setup 函数调用。这比应该的要难一点 setupext_janitor包需要导入到setup.pyso 它可以在下载前作为关键字参数传递。 最简单的方法是捕获发生的ImportError。 如果尚未下载:
import setuptools try: from setupext_janitor import janitor CleanCommand = janitor.CleanCommand except ImportError: CleanCommand = None cmd_classes = {} if CleanCommand is not None: cmd_classes['clean'] = CleanCommand setup( # normal parameters setup_requires=['setupext_janitor'], cmdclass=cmd_classes, entry_points={ # normal parameters, ie. console_scripts[] 'distutils.commands': [ ' clean = setupext_janitor.janitor:CleanCommand'] } )
不建议使用这种方法,因为install_requires关键字 安装时将setupext_janitor安装到目标环境中 源发行版中的包。更不用说 从setup.py,
使用量
安装扩展后,clean命令将接受 很少有新的命令行参数。
- setup.py clean --dist
- 删除各种dist命令生成的目录。
- setup.py clean --eggs
- 删除.egg和.egg info目录。
- setup.py clean --environment
- 删除当前活动的虚拟环境,如 $VIRTUAL_ENV环境变量。目录的名称可以 也可以使用--virtualenv-dir命令行选项指定。
- setup.py clean --pycache
- 递归地删除名为\u pycache的目录
- setup.py clean --all
- 去除所有副产品。这与使用--dist--egg--environment--pycache相同。