今天在Linux下用python安装模板,当执行命令“pip install tinyscript”的时候,走到中间的时候,结果中途给我来了一个错误,简单如下:
distutils.errors.DistutilsError: Download error for https://files.pythonhosted.org/packages/16/45/81b5262c0efc08882bdf183b788e6d28e3d684863990996d8b60967d48da/pytest_runner-5.2-py2.py3-none-any.whl
#sha256=5534b08b133ef9a5e2c22c7886a8f8508c95bb0b0bdc6cc13214f269c3c70d51: [Errno 101] Network is unreachable
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-rqe8mm05/cairocffi/
上面大概的意思,就是由于“[Errno 101]网络无法访问”才造成了DistutilsError。
具体报错如下:
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "/usr/lib/python3.7/urllib/request.py", line 1317, in do_open
encode_chunked=req.has_header('Transfer-encoding'))
File "/usr/lib/python3.7/http/client.py", line 1244, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib/python3.7/http/client.py", line 1290, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib/python3.7/http/client.py", line 1239, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib/python3.7/http/client.py", line 1026, in _send_output
self.send(msg)
File "/usr/lib/python3.7/http/client.py", line 966, in send
self.connect()
File "/usr/lib/python3/dist-packages/setuptools/ssl_support.py", line 174, in connect
(self.host, self.port), getattr(self, 'source_address', None)
File "/usr/lib/python3.7/socket.py", line 727, in create_connection
raise err
File "/usr/lib/python3.7/socket.py", line 716, in create_connection
sock.connect(sa)
OSError: [Errno 101] Network is unreachable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 766, in open_url
return open_with_auth(url, self.opener)
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 961, in _socket_timeout
return func(*args, **kwargs)
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 1080, in open_with_auth
fp = opener(request)
File "/usr/lib/python3.7/urllib/request.py", line 525, in open
response = self._open(req, data)
File "/usr/lib/python3.7/urllib/request.py", line 543, in _open
'_open', req)
File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
result = func(*args)
File "/usr/lib/python3/dist-packages/setuptools/ssl_support.py", line 161, in https_open
lambda host, **kw: VerifyingHTTPSConn(host, self.ca_bundle, **kw), req
File "/usr/lib/python3.7/urllib/request.py", line 1319, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [Errno 101] Network is unreachable>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-rqe8mm05/cairocffi/setup.py", line 13, in <module>
'cairocffi/ffi_build.py:ffi_pixbuf']
File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 144, in setup
_install_setup_requires(attrs)
File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 139, in _install_setup_requires
dist.fetch_build_eggs(dist.setup_requires)
File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 719, in fetch_build_eggs
replace_conflicting=True,
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 782, in resolve
replace_conflicting=replace_conflicting
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1065, in best_match
return self.obtain(req, installer)
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1077, in obtain
return installer(requirement)
File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 786, in fetch_build_egg
return cmd.easy_install(req)
File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 692, in easy_install
not self.always_copy, self.local_index
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 655, in fetch_distribution
dist = find(requirement)
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 635, in find
loc = self.download(dist.location, tmpdir)
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 579, in download
found = self._download_url(scheme.group(1), spec, tmpdir)
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 824, in _download_url
return self._attempt_download(url, filename)
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 830, in _attempt_download
headers = self._download_to(url, filename)
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 729, in _download_to
fp = self.open_url(url)
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 780, in open_url
% (url, v.reason))
distutils.errors.DistutilsError: Download error for https://files.pythonhosted.org/packages/16/45/81b5262c0efc08882bdf183b788e6d28e3d684863990996d8b60967d48da/pytest_runner-5.2-py2.py3-none-any.whl#sha256=5534b08b133ef9a5e2c22c7886a8f8508c95bb0b0bdc6cc13214f269c3c70d51: [Errno 101] Network is unreachable
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-rqe8mm05/cairocffi/
原因:
由于“distutils.errors.DistutilsError”这个错误的原因很多,具体还要根据后面的报错来看,毕竟不同的错误原因,解决方法是不一样的。
解决方法
由于distutils.errors.DistutilsError原因很多,就拿我这报错来说,上面既然已经说明了我的原因是:
[Errno 101]网络无法访问
既然这样的话,可能是中途网络无故中断了,我只需要重装执行命令“pip install tinyscript”安装一下就可以了。
注意:
毕竟每个人遇到的情况不一样,我遇到的情况或许和你的不一样,这里只是给你一个解决问题的思路,有的人可能遇到的 distutils.errors.DistutilsError 可能是缺少某个python模块所引起的。