【问题标题】:ImportError: cannot import name 'certs'ImportError:无法导入名称“证书”
【发布时间】:2015-01-11 18:23:55
【问题描述】:

我在过去 2 天内遇到此错误。 python requests 库似乎有问题,但我已经重新安装了几次,但没有运气。

Traceback (most recent call last):
    File "project-src/bla-blah/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
    File "project-src\env\lib\site-packages\django\core\management\__init__.py", line 385, in execute_from_command_line
    utility.execute()
    File "project-src\env\lib\site-packages\django\core\management\__init__.py", line 354, in execute
    django.setup()
    File "project-src\env\lib\site-packages\django\__init__.py", line 21, in setup
    apps.populate(settings.INSTALLED_APPS)
    File "project-src\env\lib\site-packages\django\apps\registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
    File "project-src\env\lib\site-packages\django\apps\config.py", line 112, in create
    mod = import_module(mod_path)
    File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
    File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
    File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
    File "<frozen importlib._bootstrap>", line 1129, in _exec
    File "<frozen importlib._bootstrap>", line 1471, in exec_module
    File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
    File "project-src\env\lib\site-packages\social\apps\django_app\__init__.py", line 14, in <module>
    from social.apps.django_app.utils import load_strategy
    File "project-src\env\lib\site-packages\social\apps\django_app\utils.py", line 12, in <module>
    from social.backends.utils import get_backend
    File "project-src\env\lib\site-packages\social\backends\utils.py", line 2, in <module>
    from social.backends.base import BaseAuth
    File "project-src\env\lib\site-packages\social\backends\base.py", line 1, in <module>
    from requests import request, ConnectionError
    File "project-src\env\lib\site-packages\requests\__init__.py", line 58, in <module>
    from . import utils
    File "project-src\env\lib\site-packages\requests\utils.py", line 24, in <module>
    from . import certs

    ImportError: cannot import name 'certs'

可能是 2 天前的 Windows 7 更新出现了问题,因为这是最近几天唯一发生的变化。

顺便说一句,我正在使用带有 virtualenv、PyCharm 3.4.1 IDE 和 Win7 的 python 3.4。

在 certs.py 中有问题的代码(最后一行):

try:
    from certifi import where
except ImportError:
    def where():
        """Return the preferred certificate bundle."""
        # vendored bundle inside Requests
        return os.path.join(os.path.dirname(__file__), 'cacert.pem')

【问题讨论】:

  • 也许你应该在请求问题跟踪器上发布这个。
  • 好点,我也去问问。谢谢!
  • 您使用的是什么版本的请求?
  • 最后一个:请求2.4.3
  • 在 certs.py github.com/kennethreitz/requests/blob/master/requests/certs.py 我不明白问题出在哪里。这就是说它无法导入证书。当你这样做时会发生什么:python -c 'import requests; print(requests.__version__)'?

标签: python python-3.x python-requests importerror


【解决方案1】:

这对我有用(重新安装请求库):

pip uninstall requests pip install requests

【讨论】:

  • macOS Mojave 软件包自动更新似乎存在一些问题。不确定。但是,我卸载了 requests 2.18.x 版本并安装了最新的 2.22.x 版本,它对我有用。
  • 这应该是答案!
【解决方案2】:

上周我在我的 Mac (Sierra) 上也遇到了同样的问题。此外,certs.py 模块存在,这意味着这是一个与操作系统有关的问题,而不是与 Python 本身有关的问题。在我的情况下,这是最大文件限制的问题,所以只需使用 ulimit 200000 200000 增加它

【讨论】:

    【解决方案3】:

    如果您想知道这个问题发生了什么...我重新安装了操作系统,再次下载了 git 项目,重新配置了 python virtualenv 并且“神奇地”它工作了。所以我确定某处存在配置错误,但这不是请求库问题。

    如果你有同样的问题,我鼓励你安装一个全新的环境。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-31
      • 2014-10-10
      • 2014-09-20
      • 2014-08-28
      • 2014-06-10
      • 2016-05-16
      相关资源
      最近更新 更多