使用命令行下载spaCy的en_core_web_md时遇连接超时错误求助
解决spaCy en_core_web_md模型下载超时问题
问题描述
我刚开始学习NLP教程,在学习词向量部分时需要用到spaCy库的en_core_web_md模型。使用命令python -m spacy download en_core_web_md在命令提示符执行下载操作时,出现了连接raw.githubusercontent.com超时的Traceback错误。我的网络连接正常,目前仅了解到可直接从官网下载的方案,希望能获得其他可行的解决办法。
错误详情
Traceback (most recent call last): 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", 行403, in _make_request self._validate_conn(conn) 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", 行1053, in _validate_conn conn.connect() 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connection.py", 行419, in connect self.sock = ssl_wrap_socket( ^^^^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\ssl_.py", 行449, in ssl_wrap_socket ssl_sock = _ssl_wrap_socket_impl( ^^^^^^^^^^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\ssl_.py", 行493, in _ssl_wrap_socket_impl return ssl_context.wrap_socket(sock, server_hostname=server_hostname) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\ssl.py", 行517, in wrap_socket return self.sslsocket_class._create( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\ssl.py", 行1075, in _create self.do_handshake() 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\ssl.py", 行1346, in do_handshake self._sslobj.do_handshake() TimeoutError: [WinError 10060] 连接尝试失败,因为连接方在一段时间后没有正确响应,或者已建立的连接失败,因为连接的主机未能响应 在处理上述异常期间,发生了另一个异常: Traceback (most recent call last): 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\adapters.py", 行486, in send resp = conn.urlopen( ^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", 行798, in urlopen retries = retries.increment( ^^^^^^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\retry.py", 行550, in increment raise six.reraise(type(error), error, _stacktrace) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\packages\six.py", 行770, in reraise raise value 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", 行714, in urlopen httplib_response = self._make_request( ^^^^^^^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", 行406, in _make_request self._raise_timeout(err=e, url=url, timeout_value=conn.timeout) 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", 行357, in _raise_timeout raise ReadTimeoutError( urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='raw.githubusercontent.com', port=443): 读取超时。(read timeout=None) 在处理上述异常期间,发生了另一个异常: Traceback (most recent call last): 文件 "<frozen runpy>", 行198, in _run_module_as_main 文件 "<frozen runpy>", 行88, in _run_code 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\spacy\__main__.py", 行4, in <module> setup_cli() 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\spacy\cli\_util.py", 行87, in setup_cli command(prog_name=COMMAND) 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", 行1157, in __call__ return self.main(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\typer\core.py", 行783, in main return _main( ^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\typer\core.py", 行225, in _main rv = self.invoke(ctx) ^^^^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", 行1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", 行1434, in invoke return ctx.invoke(self.callback, **ctx.params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", 行783, in invoke return __callback(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\typer\main.py", 行683, in wrapper return callback(**use_params) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\spacy\cli\download.py", 行43, in download_cli download(model, direct, sdist, *ctx.args) 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\spacy\cli\download.py", 行77, in download compatibility = get_compatibility() ^^^^^^^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\spacy\cli\download.py", 行122, in get_compatibility r = requests.get(about.__compatibility__) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\api.py", 行73, in get return request("get", url, params=params, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\api.py", 行59, in request return session.request(method=method, url=url, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", 行589, in request resp = self.send(prep, **send_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", 行703, in send r = adapter.send(request, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件 "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\adapters.py", 行532, in send raise ReadTimeout(e, request=request) requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='raw.githubusercontent.com', port=443): 读取超时。(read timeout=None)
可行解决办法
修改本地Hosts文件
找到raw.githubusercontent.com的可用IP地址,添加到系统Hosts文件中:- 打开
C:\Windows\System32\drivers\etc\hosts(Windows系统)或/etc/hosts(Linux/macOS) - 在文件末尾添加一行:
185.199.108.133 raw.githubusercontent.com(可通过在线IP查询工具获取最新有效IP) - 保存文件后,重新执行下载命令
- 打开
使用国内PyPI镜像源安装
直接通过国内镜像下载模型包并安装,命令如下:pip install en_core_web_md -i https://pypi.tuna.tsinghua.edu.cn/simple安装完成后,执行以下命令将模型链接到spaCy:
python -m spacy link en_core_web_md en_core_web_md手动下载后本地安装
- 找到对应版本的en_core_web_md模型包(需匹配你的spaCy版本)
- 下载模型的tar.gz压缩包到本地
- 执行本地安装命令:
pip install /path/to/en_core_web_md-x.x.x.tar.gz设置临时代理
如果有可用的代理服务器,可在执行下载命令前设置环境变量:
Windows命令提示符:set http_proxy=http://你的代理地址:端口 set https_proxy=https://你的代理地址:端口 python -m spacy download en_core_web_mdLinux/macOS终端:
export http_proxy=http://你的代理地址:端口 export https_proxy=https://你的代理地址:端口 python -m spacy download en_core_web_md
内容的提问来源于stack exchange,提问作者Al-Amin Baba
相关产品推荐
相关产品推荐

