gpt4 book ai didi

在 supervisord 中设置环境变量时出现 Python 键错误

转载 作者:太空狗 更新时间:2023-10-29 18:31:26 26 4
gpt4 key购买 nike

我在supervisord中设置了一个环境变量:

[program:worker]
directory = /srv/app/
command=celery -A tasks worker -Q default -l info -n default_worker.%%h
environment=BROKER="amqp://admin:password@xxxxx:5672//"

然后,在我的 celeryconfig.py 中,我尝试像这样读取该变量。

BROKER = os.environ['BROKER']

但我仍然得到下面错误的 key ,为什么?

  File "/usr/local/lib/python2.7/dist-packages/celery/loaders/base.py", line 106, in import_module
return importlib.import_module(module, package=package)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/srv/app/celeryconfig.py", line 6, in <module>
BROKER = os.environ['BROKER']
File "/usr/lib/python2.7/UserDict.py", line 23, in __getitem__
raise KeyError(key)
KeyError: 'BROKER

有评论中建议的 envs 文件转储:

{
'SUPERVISOR_GROUP_NAME': 'celery_default_worker',
'TERM': 'linux',
'SUPERVISOR_SERVER_URL': 'unix: ///var/run/supervisor.sock',
'UPSTART_INSTANCE': '',
'RUNLEVEL': '2',
'UPSTART_EVENTS': 'runlevel',
'PREVLEVEL': 'N',
'SUPERVISOR_PROCESS_NAME': 'celery_default_worker',
'UPSTART_JOB': 'rc',
'PWD': '/',
'SUPERVISOR_ENABLED': '1',
'runlevel': '2',
'PATH': '/usr/local/sbin: /usr/local/bin: /sbin: /bin: /usr/sbin: /usr/bin',
'previous': 'N'
}

最佳答案

它看起来像是 supervisord 中的一个已知错误:

http://github.com/Supervisor/supervisor/issues/91 (有点解决了)

http://github.com/Supervisor/supervisor/pull/550 (待定)

在这种情况下,将您的环境规范移动到全局范围(对于 supervisord 进程本身)可能是一个可接受的解决方法。

最后,如果一切都失败了,将 celery 包装在一个 shell 脚本中,该脚本接受这个特定的环境变量作为命令行参数。

关于在 supervisord 中设置环境变量时出现 Python 键错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28680045/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com