- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我似乎无法捕捉到这个 TimeoutError 异常。在此找到的其他主题建议对 Python 3 使用“except TimeoutError”,但它仍然会引发错误。错误日志如下。
我也尝试过导入 requests 模块,但没有任何区别。假设这是一个简单的修复,我就是想不通。我该如何解决?
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/packages/urllib3/connection.py", line 141, in _new_conn
(self.host, self.port), self.timeout, **extra_kw)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/packages/urllib3/util/connection.py", line 83, in create_connection
raise err
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/packages/urllib3/util/connection.py", line 73, in create_connection
sock.connect(sa)
TimeoutError: [Errno 60] Operation timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 600, in urlopen
chunked=chunked)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 345, in _make_request
self._validate_conn(conn)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 844, in _validate_conn
conn.connect()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/packages/urllib3/connection.py", line 284, in connect
conn = self._new_conn()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/packages/urllib3/connection.py", line 150, in _new_conn
self, "Failed to establish a new connection: %s" % e)
requests.packages.urllib3.exceptions.NewConnectionError: <requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x106f3dd68>: Failed to establish a new connection: [Errno 60] Operation timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/adapters.py", line 423, in send
timeout=timeout
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/packages/urllib3/connectionpool.py", line 649, in urlopen
_stacktrace=sys.exc_info()[2])
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/packages/urllib3/util/retry.py", line 376, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
requests.packages.urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.spotify.com', port=443): Max retries exceeded with url: /v1/artists/090VebphoycdEyH165iMqc (Caused by NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x106f3dd68>: Failed to establish a new connection: [Errno 60] Operation timed out',))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "populate2.py", line 130, in <module>
r = s.get_artist(a['uri'])
File "/Users/tapoffice/Google Drive/OSCAR SIDEBO/Programming/Python/Spotify/spotify_handler.py", line 44, in get_artist
search = self.spotifyHandler.artist(uri)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/spotipy/client.py", line 244, in artist
return self._get('artists/' + trid)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/spotipy/client.py", line 146, in _get
return self._internal_call('GET', url, payload, kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/spotipy/client.py", line 108, in _internal_call
r = self._session.request(method, url, headers=headers, proxies=self.proxies, **args)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/sessions.py", line 488, in request
resp = self.send(prep, **send_kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/sessions.py", line 609, in send
r = adapter.send(request, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/adapters.py", line 487, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='api.spotify.com', port=443): Max retries exceeded with url: /v1/artists/090VebphoycdEyH165iMqc (Caused by NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x106f3dd68>: Failed to establish a new connection: [Errno 60] Operation timed out',))
这是实际运行的脚本。基本上,它遍历从数据库请求的列表并执行 API 请求以收集信息,然后将这些信息添加回数据库。我意识到这个问题的根源是它超出了 API 的速率限制,所以解决方案是让脚本在继续之前休眠 1 分钟。我不想使用“except Exception”,因为我可能会遗漏其他错误。下面的脚本没有捕捉到我不明白的 TimeoutError。
for a in [x for x in songs.get('*')]:
try:
r = s.get_track(a['uri'])
pop = r['popularity']
songupdates.add_row(['song_id', 'popularity'], [str(a['id']), str(pop)])
except TimeoutError:
print("TimeoutError, sleeping 1 minute.")
time.sleep(60)
最佳答案
正如我在您帖子下方的评论中所写,调试可能很有用。
在我看来,异常发生在列表理解 [x for x in songs.get('*')]
中(我假设 songs.get() 提出了一些请求),在try
block ,这就是您无法处理它的原因。
此代码的输出可能会有所帮助:
import logging
logger = logging.getLogger('my_app')
logger.setLevel(logging.DEBUG)
file_handler = logging.FileHandler('my_app.log')
file_handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
try:
logger.info('Starting for-loop')
for a in songs.get('*'):
logger.info('Getting song track')
r = s.get_track(a['uri'])
pop= r['popularity']
logger.info('Adding a row')
songupdates.add_row(['song_id','popularity'],[str(a['id']),str(pop)])
except Exception:
logger.error('An error occurred', exc_info=True)
如果记录器的最后一条信息消息是'Starting the for-loop',则有两种可能性:请求无效(我猜不太可能)或者实际上需要用 time.sleep 减慢代码速度() 或者,如果可能,增加超时时间,将关键字参数传递到代码中的某处。
关于python-3.x - 捕获异常 'TimeoutError',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52158480/
我想从 URL 中获取一些数据,但服务器速度很慢...所以每当我使用 volley 获取数据时,我都会得到 TimeOurError,无论如何我可以处理多长时间 volley 应该尝试获取数据,因为服
我想测试 asyncio 如何处理阻塞进程。 我的代码一定有问题,因为 asyncio.TimeoutError 从未引发: import asyncio, random, time q = asyn
我有一个 asyncio.Task 需要在一段时间后取消。在取消之前,任务需要做一些清理。根据文档,我应该只能调用 task.cancel 或 asyncio.wait_for(coroutine,
我不明白为什么有时我无法在我的 flash_serial_buffer 方法中捕捉到 TimeOutError。 当运行我的程序时,我有时会收到一个未被捕获的 TimeOutError,我不明白为什么
我正在执行 aiohttp.ClientSession 实例的 request(),有时会引发 asyncio.TimeoutError。我认为在这种情况下必须引发 aiohttp.ServerTim
我似乎无法捕捉到这个 TimeoutError 异常。在此找到的其他主题建议对 Python 3 使用“except TimeoutError”,但它仍然会引发错误。错误日志如下。 我也尝试过导入 r
我正在 try catch run_until_complete 内抛出的异常,但无论我尝试什么,我似乎都无法正确捕获它们。 这是我的最新尝试(注意,我使用的是 Pypputeer,它是 Python
我有一个可以取消的 Bluebird promise 。当取消时,我必须做一些工作来巧妙地中止正在运行的任务。可以通过两种方式取消任务:通过 promise.cancel() 或 promise.ti
我使用aiohttp和limited_as_completed方法来加速抓取(大约1亿个静态网站页面)。但是,代码会在几分钟后停止,并返回 TimeoutError。我尝试了几种方法,但仍然无法阻止引
更新:刚刚发现 echo_pool=True 只显示主要事件,而是使用 echo_pool="debug"。 我必须明确关闭引擎连接,否则在使用 nosetest 和 sqlalchemy 时会出现
我在这段代码中遇到了一个小问题: try: return await asyncio.wait_for(tcp_command(cmd), timeout=timeout) except (O
我使用 asyncio 来获取 url,有时会超时,尽我所能,我无法使用以下代码捕获 asyncio.TimeoutError! async def fetch(url, session):
我的应用程序中不断出现 Redis::Timeout 错误(在 UI 和后台作业中)。我正在为 Redis 使用 AWS ElastiCache 服务。 这就是我创建 Redis 连接的方式。在我的
在 Node 6.11 上使用 Sequelize 4.5.0 运行的我的 Express 应用程序有时会抛出 TimeoutError: ResourceRequest timed out,在不应该
我们使用带有 Python3.5 的 aiohttp 将数据发布到 Elasticsearch 中。帖子行如下: response = await self._http_session.request
我正在使用 nodeJs Express 框架。 我将 mysql 数据库与 sequelizejs 库一起使用,并使用查询来检索数据。 当我为将近 50,00,000 条记录触发选择查询时,出现超时
我在安装模块时遇到了这个问题 matplotlib并写了这段代码: import matplotlib.pyplot as plt 然后这里是错误: "matplotlib.cbook.Timeout
我想使用 TimeoutError 和 tqdm 进度条执行多重处理。 我已经成功地分别尝试了它们。我该如何结合逻辑? 目标: 进度条应随着每次 imap_unordered 调用而更新 每个进程
我最近在 Heroku 上使用我的应用时遇到了这个错误。并发现了这一点: My::Application.config.session_store :redis_session_store, {
我曾两次尝试在 CentOS7 VM 上安装 RubyMine。由于 Redis::TimeoutError,它们现在都失败了。 我在尝试启动 Rails 服务器时收到此错误。在我通过“service
我是一名优秀的程序员,十分优秀!