异常值:导入Geocoder时无法导入名称TimeoutStateError

1 投票
3 回答
1471 浏览
提问于 2025-04-20 07:54

我正在尝试从一个地址获取坐标,使用的是pygeocoder这个库。但在运行程序后,我遇到了一个错误。有人能帮我看看吗?

错误信息:

File "/Library/Python/2.7/site-packages/django/core/handlers/base.py" in get_response
  103.                     resolver_match = resolver.resolve(request.path_info)

File "/Library/Python/2.7/site-packages/django/core/urlresolvers.py" in resolve
  319.             for pattern in self.url_patterns:

File "/Library/Python/2.7/site-packages/django/core/urlresolvers.py" in url_patterns
  347.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)

File "/Library/Python/2.7/site-packages/django/core/urlresolvers.py" in urlconf_module
  342.             self._urlconf_module = import_module(self.urlconf_name)

File "/Library/Python/2.7/site-packages/django/utils/importlib.py" in import_module
  35.     __import__(name)

File "/Users/Jack/fanju/src/wonew/grubcat/urls.py" in <module>
  10. from fanju.views import upload_app

File "/Users/Jack/fanju/src/wonew/grubcat/fanju/views.py" in <module>
  26. from fanju.views_restaurant import add_dummy_menu

File "/Users/Jack/fanju/src/wonew/grubcat/fanju/views_restaurant.py" in <module>
  11. from pygeocoder import Geocoder

File "/Library/Python/2.7/site-packages/pygeocoder.py" in <module>
  19. import requests

File "/Library/Python/2.7/site-packages/requests/__init__.py" in <module>
  58. from . import utils

File "/Library/Python/2.7/site-packages/requests/utils.py" in <module>
  23. from .compat import parse_http_list as _parse_list_header

File "/Library/Python/2.7/site-packages/requests/compat.py" in <module>
  7. from .packages import charade as chardet

File "/Library/Python/2.7/site-packages/requests/packages/__init__.py" in <module>
  3. from . import urllib3

File "/Library/Python/2.7/site-packages/requests/packages/urllib3/__init__.py" in <module>
  16. from .connectionpool import (

File "/Library/Python/2.7/site-packages/requests/packages/urllib3/connectionpool.py" in <module>
  12. from .util import resolve_cert_reqs, resolve_ssl_version, assert_fingerprint

File "/Library/Python/2.7/site-packages/requests/packages/urllib3/util/__init__.py" in <module>
  18. from .timeout import (

File "/Library/Python/2.7/site-packages/requests/packages/urllib3/util/timeout.py" in <module>
  4. from ..exceptions import TimeoutStateError

Exception Type: ImportError at /

Exception Value: cannot import name TimeoutStateError

我尝试修改了urllib3/util/timeout.py中的一行代码。 我把这一行from ..exceptions import TimeoutStateError改成了 from urllib3.exceptions import TimeoutStateError,这样就可以正常工作了。

那么接下来我该怎么做呢?我觉得这个库应该是一个常用的库。

3 个回答

0

你运行的代码是什么?

不过看起来你没有写出完整的错误名称,应该是 ModuleName.TimeoutStateError。根据我快速搜索和你说的内容,应该是 urllib3.TimeoutStateError。

0

我用其他方法来实现这个功能。我是通过解析谷歌的json格式来做到的。谢谢。

1

在我的情况下,正如我在原问题下评论的那样,问题出在我通过rpm包安装了urllib3requests这两个库。把它们都卸载掉,然后通过pip重新安装,结果让Python的安装状态变得正确,导入requests时就没有异常了。

撰写回答