运行setuptools
时,我使用的是一个python库(flower
),它将一个入口点安装到另一个库(celery
)中。但是,我希望将flower和celele都保留在我的应用程序目录中,而不是将其全局安装在python系统上。如何用程序将花的入口点安装到芹菜中?
注意,入口点在PKG-INFO
中定义如下:
[celery.commands]
flower = flower.command:FlowerCommand
有一个函数pkg_resources.load_entry_point
似乎是我想要的,但我不确定如何使用它。
您尝试过virtualenv吗?它允许您创建本地环境,这样您就可以为一个应用程序安装东西,而无需全局安装。这里有一个关于它的愚蠢教程。
这是我最终使用的解决方案,效果很好,但它是芹菜和花特有的。我在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')