【问题标题】:setup.py: what is a difference between entry points and cmdclass?setup.py:入口点和 cmdclass 有什么区别?
【发布时间】:2019-05-10 13:47:52
【问题描述】:

在学习setup.py的结构时,我遇到了两个术语:entry_pointscmdclass

我看了setuptoolsdistutils的文档。借助这一点,以及我在网上找到的一些信息,我得出的结论是,这两者是一回事。具体来说:

这两个用于添加自定义命令,或者可用于向现有命令添加挂钩。

但是,当我检查一些流行包的setup.py 文件时,我发现这两个属性是一起使用的。例如请参阅numpy 包中的setup.py

你能解释一下这两个属性的用途吗?

【问题讨论】:

    标签: python setuptools setup.py distutils


    【解决方案1】:

    cmdclass 是一种修改 setup.py 行为的方法。例如,您可以覆盖 buildinstall 命令来扩展它们。

    entry_points 类似于scripts,它们声明将在安装时创建的脚本。这些脚本旨在由用户运行。

    【讨论】:

    • 那么,使用 cmdclass 和 entry_Points 我可以在安装时更改脚本?
    • 什么意思?这两个是不同的东西,只有一个安装脚本,用户稍后将使用它。 “更改脚本@安装时间”是什么意思?
    • 好吧,我的意思是在运行时执行任意代码 - 例如作者使用 cmdclass 来做同样的事情:github.com/mschwager/0wned
    • 两者都可以用来运行任何代码。 cmdclass 在安装时运行代码,entry_points 在用户运行脚本时运行代码。
    猜你喜欢
    • 1970-01-01
    • 2020-06-04
    • 2017-10-22
    • 2017-01-21
    • 2022-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多