我已经读过这个stackoverflow Q&A但是我的情况并没有起作用。
在我的场景中,我使用优秀的包django-rq
将函数(submit_transaction_for_settlement(transaction_id)
)推送到redis队列。此功能的作用是提交结算交易。
在沙箱中,无论何时执行此功能,我都会收到同样的错误:AttributeError: type object 'Configuration' has no attribute 'environment'
。
我在我的函数中尝试agf
's proposal关于instantiate a new gateway for each transaction
,但它没有用!
这可能与redis队列或工作环境的环境有关吗?
def submit_transaction_for_settlement(transaction_id):
from braintree import Configuration, BraintreeGateway
config = Configuration(environment=settings.BRAINTREE_ENVIRONMENT, merchant_id=settings.BRAINTREE_MERCHANT_ID,
public_key=settings.BRAINTREE_PUBLIC_KEY, private_key=settings.BRAINTREE_PRIVATE_KEY)
gateway = BraintreeGateway(config=config)
result = gateway.transaction.submit_for_settlement(transaction_id)
答案 0 :(得分:0)
Ahrg!
我讨厌回答问题的那些时刻以及我发现自己解决问题后的几分钟!
故障发生在运行rqworker
的命令中。我使用命令python manage.py rqworker --worker-class rq.SimpleWorker
,因为我有this issue,因为我使用了python 2.7(或其他原因造成了这个问题)。生成此问题的命令是python manage.py rqworker
。
现在升级到python 3.4,最后一个命令就像一个魅力!
因此,运行python manage.py rqworker
可以解决问题,而且没有错误!