【问题标题】:"TypeError: object of type 'map' has no len()" error when adding django_social to INSTALLED_APPS将 django_social 添加到 INSTALLED_APPS 时出现“TypeError:'map' 类型的对象没有 len()”错误
【发布时间】:2021-01-25 19:15:19
【问题描述】:

我正在尝试实现 django 社交身份验证,为此我做了pip install social-auth-app-django,然后我继续将social_django 添加到我的INSTALLED_APPS。之后,当我运行应用程序时,我收到以下错误(我正在提交整个回溯):

Traceback (most recent call last):
  File "c:\users\edgar\appdata\local\programs\python\python35\lib\threading.py", line 914, in _bootstrap_inner
    self.run()
  File "c:\users\edgar\appdata\local\programs\python\python35\lib\threading.py", line 862, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\Edgar\venvs\internet-lead\lib\site-packages\django\utils\autoreload.py", line 54, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\Edgar\venvs\internet-lead\lib\site-packages\django\core\management\commands\runserver.py", line 109, in inner_run
    autoreload.raise_last_exception()
  File "C:\Users\Edgar\venvs\internet-lead\lib\site-packages\django\utils\autoreload.py", line 77, in raise_last_exception
    raise _exception[1]
  File "C:\Users\Edgar\venvs\internet-lead\lib\site-packages\django\core\management\__init__.py", line 337, in execute
    autoreload.check_errors(django.setup)()
  File "C:\Users\Edgar\venvs\internet-lead\lib\site-packages\django\utils\autoreload.py", line 54, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\Edgar\venvs\internet-lead\lib\site-packages\django\__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\Users\Edgar\venvs\internet-lead\lib\site-packages\django\apps\registry.py", line 114, in populate
    app_config.import_models()
  File "C:\Users\Edgar\venvs\internet-lead\lib\site-packages\django\apps\config.py", line 211, in import_models
    self.models_module = import_module(models_module_name)
  File "c:\users\edgar\appdata\local\programs\python\python35\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 665, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "C:\Users\Edgar\venvs\internet-lead\lib\site-packages\social_django\models.py", line 11, in <module>
    from .storage import DjangoUserMixin, DjangoAssociationMixin, \
  File "C:\Users\Edgar\venvs\internet-lead\lib\site-packages\social_django\storage.py", line 9, in <module>
    from social_core.storage import UserMixin, AssociationMixin, NonceMixin, \
  File "C:\Users\Edgar\venvs\internet-lead\lib\site-packages\social_core\storage.py", line 12, in <module>
    from openid.association import Association as OpenIdAssociation
  File "C:\Users\Edgar\venvs\internet-lead\lib\site-packages\openid\__init__.py", line 52, in <module>
    if len(version_info) != 3:
TypeError: object of type 'map' has no len()

如果我从INSTALLED_APPS 中注释掉“social_django”,一切都会再次正常运行。 我的 python 版本是 3.5.2 和 Django 2.2.12。有任何想法吗 ?我迷路了……

【问题讨论】:

    标签: python-social-auth


    【解决方案1】:

    我遇到了这个错误,我通过卸载 python-openidpython3-openid 来修复它:

    pip uninstall python-openid 
    
    pip uninstall python3-openid
    

    然后重新安装python3-openid 使用:

     pip install python3-openid
    

    【讨论】:

      猜你喜欢
      • 2017-06-13
      • 2019-01-06
      • 1970-01-01
      • 2021-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      • 2019-05-23
      相关资源
      最近更新 更多