首页 > 解决方案 > wrap_socket() 得到了一个意外的关键字参数“_context”

问题描述

我目前正在尝试首次使用 nginx 和 gunicorn 投入生产 django 项目。该项目包含一个注册页面,用户访问该页面,填写表格,数据用于向另一台服务器发出请求,以使用从我的应用程序表单中获取的数据创建配置文件。

为了完成这样的任务,我有以下库:

该项目在 ubuntu 18.04 虚拟机内的测试环境中进行了全面测试和功能。

现在生产中的服务器是 Debian 10。项目的每个网页都可以正常工作,Django 管理页面也是如此。问题是,当我尝试填写表格以在第二台服务器的数据库上实际注册时,它返回以下错误:

    Environment:


Request Method: POST
Request URL: http://reg.rocstar.tv/register/customer/

Django Version: 2.2.7
Python Version: 3.7.5
Installed Applications:
['reg.apps.RegConfig',
 'import_export',
 'crispy_forms',
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback:

File "/home/rocstar/.local/share/virtualenvs/register-page-Z_TgQ-vY/lib/python3.7/site-packages/django/core/handlers/exception.py" in inner
  34.             response = get_response(request)

File "/home/rocstar/.local/share/virtualenvs/register-page-Z_TgQ-vY/lib/python3.7/site-packages/django/core/handlers/base.py" in _get_response
  115.                 response = self.process_exception_by_middleware(e, request)

File "/home/rocstar/.local/share/virtualenvs/register-page-Z_TgQ-vY/lib/python3.7/site-packages/django/core/handlers/base.py" in _get_response
  113.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/home/rocstar/register-page/register_page/reg/views.py" in CustomerRegister
  63.                 r_login = requests.post("https://nb.mc.rocstar.tv/int/login", data = {"username" : CMS_user, "password" : CMS_pass}, allow_redirects = False)

File "/home/rocstar/.local/share/virtualenvs/register-page-Z_TgQ-vY/lib/python3.7/site-packages/requests/api.py" in post
  116.     return request('post', url, data=data, json=json, **kwargs)

File "/home/rocstar/.local/share/virtualenvs/register-page-Z_TgQ-vY/lib/python3.7/site-packages/requests/api.py" in request
  60.         return session.request(method=method, url=url, **kwargs)

File "/home/rocstar/.local/share/virtualenvs/register-page-Z_TgQ-vY/lib/python3.7/site-packages/requests/sessions.py" in request
  533.         resp = self.send(prep, **send_kwargs)

File "/home/rocstar/.local/share/virtualenvs/register-page-Z_TgQ-vY/lib/python3.7/site-packages/requests/sessions.py" in send
  646.         r = adapter.send(request, **kwargs)

File "/home/rocstar/.local/share/virtualenvs/register-page-Z_TgQ-vY/lib/python3.7/site-packages/requests/adapters.py" in send
  449.                     timeout=timeout

File "/home/rocstar/.local/share/virtualenvs/register-page-Z_TgQ-vY/lib/python3.7/site-packages/urllib3/connectionpool.py" in urlopen
  672.                 chunked=chunked,

File "/home/rocstar/.local/share/virtualenvs/register-page-Z_TgQ-vY/lib/python3.7/site-packages/urllib3/connectionpool.py" in _make_request
  376.             self._validate_conn(conn)

File "/home/rocstar/.local/share/virtualenvs/register-page-Z_TgQ-vY/lib/python3.7/site-packages/urllib3/connectionpool.py" in _validate_conn
  994.             conn.connect()

File "/home/rocstar/.local/share/virtualenvs/register-page-Z_TgQ-vY/lib/python3.7/site-packages/urllib3/connection.py" in connect
  394.             ssl_context=context,

File "/home/rocstar/.local/share/virtualenvs/register-page-Z_TgQ-vY/lib/python3.7/site-packages/urllib3/util/ssl_.py" in ssl_wrap_socket
  370.             return context.wrap_socket(sock, server_hostname=server_hostname)

File "/home/rocstar/.local/share/virtualenvs/register-page-Z_TgQ-vY/lib/python3.7/site-packages/eventlet/green/ssl.py" in wrap_socket
  438.             return GreenSSLSocket(sock, *a, _context=self, **kw)

File "/home/rocstar/.local/share/virtualenvs/register-page-Z_TgQ-vY/lib/python3.7/site-packages/eventlet/green/ssl.py" in __new__
  76.                     *args, **kw

Exception Type: TypeError at /register/customer/
Exception Value: wrap_socket() got an unexpected keyword argument '_context'

当使用 requests 命令访问第二台服务器的登录 API 时,回溯显示错误,这是使用配置文件创建 API 所必需的。

我真的不明白问题出在哪里,因为正如我所说,这是我第一次使用这些工具。因此,任何帮助都非常受欢迎。

标签: pythondjangopython-requestsgunicorneventlet

解决方案


推荐阅读