【问题标题】:Adding a Python Entry Point without Running setuptools在不运行 setuptools 的情况下添加 Python 入口点
【发布时间】:2013-07-13 21:22:09
【问题描述】:

我正在使用 python 库 (flower),当您运行 setuptools 时,它会将入口点安装到另一个库 (celery)。但是,我想将花和芹菜都保留在我的应用程序目录中,而不是在 python 系统上全局安装。如何以编程方式将花的入口点安装到 celery 中?

注意入口点在PKG-INFO中定义如下:

[celery.commands]
flower = flower.command:FlowerCommand

有一个函数pkg_resources.load_entry_point似乎是我想要的,但我不知道如何使用它。

【问题讨论】:

    标签: python celery setuptools django-celery


    【解决方案1】:

    你试过virtualenv吗?它允许您创建本地环境,以便您可以为一个应用程序安装东西,而无需全局安装东西。这是一个傻瓜tutorial about it

    【讨论】:

    • 我使用的许多软件包要么在 pypi 上不可用,要么我需要直接从 git 存储库中获取最新版本。 virtualenv 更适合标准软件包安装,不是吗?我认为这对我的情况没有太大帮助。
    【解决方案2】:

    这是我最终使用的解决方案,效果很好,但专门针对芹菜和花卉。我将以下内容放入我的settings.py

    INSTALLED_APPS += [
        'djcelery',
    ]
    try:
        import flower.command
        import celery.bin.celery
    except Exception as e:
        logging.error("Flower will not be available: %s"%e)
    else:
        celery.bin.celery.CeleryCommand.register_command(
              flower.command.FlowerCommand, name='flower')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-22
      • 2016-08-14
      • 2011-06-26
      • 1970-01-01
      • 1970-01-01
      • 2018-12-01
      • 1970-01-01
      相关资源
      最近更新 更多