Django芹菜4-ValueError:启动芹菜工作程序时,以10为基数的int()的文本无效

Django芹菜4-ValueError:启动芹菜工作程序时,以10为基数的int()的文本无效,django,python-3.x,celery,amazon-sqs,Django,Python 3.x,Celery,Amazon Sqs,我已将我的celery.py配置为其文档,但我将芹菜代理url放在AWS SQS中,但无法启动它。当我运行芹菜工人时,我得到的ValueError为: File "/Users/abd/Desktop/proj-aws/lib/python3.6/site-packages/celery/bin/base.py", line 244, in __call__ ret = self.run(*args, **kwargs) File "/Users/abd/Desktop/pr

我已将我的celery.py配置为其文档,但我将芹菜代理url放在AWS SQS中,但无法启动它。当我运行芹菜工人时,我得到的ValueError为:

File "/Users/abd/Desktop/proj-aws/lib/python3.6/site-packages/celery/bin/base.py", line 244, in __call__ ret = self.run(*args, **kwargs) File "/Users/abd/Desktop/proj-aws/lib/python3.6/site-packages/celery/bin/worker.py", line 255, in run **kwargs) File "/Users/abd/Desktop/proj-aws/lib/python3.6/site-packages/celery/worker/worker.py", line 99, in __init__ self.setup_instance(**self.prepare_args(**kwargs)) File "/Users/abd/Desktop/proj-aws/lib/python3.6/site-packages/celery/worker/worker.py", line 120, in setup_instance self._conninfo = self.app.connection_for_read() File "/Users/abd/Desktop/proj-aws/lib/python3.6/site-packages/celery/app/base.py", line 752, in connection_for_read return self._connection(url or self.conf.broker_read_url, **kwargs) File "/Users/abd/Desktop/proj-aws/lib/python3.6/site-packages/celery/app/base.py", line 828, in _connection 'broker_connection_timeout', connect_timeout File "/Users/abd/Desktop/proj-aws/lib/python3.6/site-packages/kombu/connection.py", line 181, in __init__ url_params = parse_url(hostname) File "/Users/abd/Desktop/proj-aws/lib/python3.6/site-packages/kombu/utils/url.py", line 34, in parse_url scheme, host, port, user, password, path, query = _parse_url(url) File "/Users/abd/Desktop/proj-aws/lib/python3.6/site-packages/kombu/utils/url.py", line 52, in url_to_parts parts.port, File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/parse.py", line 167, in port port = int(port, 10) ValueError: invalid literal for int() with base 10: 'xi' 文件“/Users/abd/Desktop/proj aws/lib/python3.6/site packages/芹菜/bin/base.py”,第244行,在调用中__ ret=self.run(*args,**kwargs) 文件“/Users/abd/Desktop/proj aws/lib/python3.6/site packages/芹菜/bin/worker.py”,第255行,正在运行 **kwargs) 文件“/Users/abd/Desktop/proj aws/lib/python3.6/site packages/芹菜/worker/worker.py”,第99行,在__ self.setup_实例(**self.prepare_参数(**kwargs)) 文件“/Users/abd/Desktop/proj aws/lib/python3.6/site packages/芹菜/worker/worker.py”,第120行,在setup_实例中 self.\u conninfo=self.app.connection\u for\u read() 文件“/Users/abd/Desktop/proj aws/lib/python3.6/site packages/cellery/app/base.py”,第752行,用于连接 返回self.\u连接(url或self.conf.broker\u read\u url,**kwargs) 文件“/Users/abd/Desktop/proj aws/lib/python3.6/site packages/celery/app/base.py”,第828行,在-u连接中 “代理连接超时”,连接超时 文件“/Users/abd/Desktop/proj aws/lib/python3.6/site packages/kombu/connection.py”,第181行,在__ url_params=解析_url(主机名) parse_url中的文件“/Users/abd/Desktop/proj aws/lib/python3.6/site packages/kombu/utils/url.py”,第34行 方案、主机、端口、用户、密码、路径、查询=\u解析\u url(url) 文件“/Users/abd/Desktop/proj aws/lib/python3.6/site packages/kombu/utils/url.py”,第52行,url\u至\u部分 零件。端口, 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/parse.py”,第167行,在端口中 端口=int(端口,10) ValueError:基数为10的int()的文本无效:“xi”
我一直在四处寻找,但似乎不知道如何解决这个问题。请帮我解决这个问题!非常感谢

我遇到了同样的问题,并解决了它

首先检查(很可能)您的AWS访问密钥ID或密钥是否包含“xi/”,并且您是否有:

BROKER_URL = "sqs://%s:%s@" % (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
如果是这样,那么您的问题在于URL不安全密钥,修复方法是:

BROKER_URL = 'sqs://{0}:{1}@'.format(
    urllib.parse.quote(AWS_ACCESS_KEY_ID, safe=''),
    urllib.parse.quote(AWS_SECRET_ACCESS_KEY, safe='')
)

注意:如果使用Python2.x,请使用urllib.quote。您可以添加
芹菜.py
吗?我使用的是
kombu.utils.url
。如果字符串包含“/”,则必须使用
safe='