1. 程式人生 > >python 建立虛擬環境時報錯OSError, setuptools下載失敗

python 建立虛擬環境時報錯OSError, setuptools下載失敗

錯誤資訊如下:

Using base prefix 'c:\\users\\huful\\appdata\\local\\programs\\python\\python36-32'
New python executable in E:\Learning\Python\search\Scripts\python.exe
Installing setuptools, pip, wheel...
Complete output from command E:\Learning\Python\search\Scripts\python.exe - setuptools pip wheel:
Collecting setuptools
Using cached https://files.pythonhosted.org/packages/96/06/c8ee69628191285ddddffb277bd5abdf769166e7a14b867c2a172f0175b1/setuptools-40.4.3-py2.py3-none-any.whl
Collecting pip
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Downloading https://files.pythonhosted.org/packages/c2/d7/90f34cb0d83a6c5631cf71dfe64cc1054598c843a92b400e55675cc2ac37/pip-18.1-py2.py3-none-any.whl (1.3MB)
Exception:
Traceback (most recent call last):
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\_vendor\urllib3\response.py", line 302, in _error_catcher
yield
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\_vendor\urllib3\response.py", line 384, in read
data = self._fp.read(amt)
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\_vendor\cachecontrol\filewrapper.py", line 60, in read
data = self.__fp.read(amt)
File "c:\users\huful\appdata\local\programs\python\python36-32\Lib\http\client.py", line 449, in read
n = self.readinto(b)
File "c:\users\huful\appdata\local\programs\python\python36-32\Lib\http\client.py", line 493, in readinto
n = self.fp.readinto(b)
File "c:\users\huful\appdata\local\programs\python\python36-32\Lib\socket.py", line 586, in readinto
return self._sock.recv_into(b)
File "c:\users\huful\appdata\local\programs\python\python36-32\Lib\ssl.py", line 1002, in recv_into
return self.read(nbytes, buffer)
File "c:\users\huful\appdata\local\programs\python\python36-32\Lib\ssl.py", line 865, in read
return self._sslobj.read(len, buffer)
File "c:\users\huful\appdata\local\programs\python\python36-32\Lib\ssl.py", line 625, in read
v = self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\basecommand.py", line 215, in main
status = self.run(options, args)
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\commands\install.py", line 324, in run
requirement_set.prepare_files(finder)
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\req\req_set.py", line 380, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\req\req_set.py", line 620, in _prepare_file
session=self.session, hashes=hashes)
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\download.py", line 821, in unpack_url
hashes=hashes
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\download.py", line 659, in unpack_http_url
hashes)
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\download.py", line 882, in _download_http_url
_download_url(resp, link, content_file, hashes)
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\download.py", line 603, in _download_url
hashes.check_against_chunks(downloaded_chunks)
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\utils\hashes.py", line 46, in check_against_chunks
for chunk in chunks:
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\download.py", line 571, in written_chunks
for chunk in chunks:
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\utils\ui.py", line 139, in iter
for x in it:
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\download.py", line 560, in resp_read
decode_content=False):
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\_vendor\urllib3\response.py", line 436, in stream
data = self.read(amt=amt, decode_content=decode_content)
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\_vendor\urllib3\response.py", line 401, in read
raise IncompleteRead(self._fp_bytes_read, self.length_remaining)
File "c:\users\huful\appdata\local\programs\python\python36-32\Lib\contextlib.py", line 100, in __exit__
self.gen.throw(type, value, traceback)
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv_support\pip-9.0.3-py2.py3-none-any.whl\pip\_vendor\urllib3\response.py", line 307, in _error_catcher
raise ReadTimeoutError(self._pool, None, 'Read timed out.')
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
----------------------------------------
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\huful\AppData\Local\Programs\Python\Python36-32\Scripts\virtualenv.exe\__main__.py", line 9, in <module>
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv.py", line 712, in main
symlink=options.symlink)
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv.py", line 953, in create_environment
download=download,
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv.py", line 904, in install_wheel
call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)
File "c:\users\huful\appdata\local\programs\python\python36-32\lib\site-packages\virtualenv.py", line 796, in call_subprocess
% (cmd_desc, proc.returncode))
OSError: Command E:\Learning\Python\search\Scripts\python.exe - setuptools pip wheel failed with error code 2

總結錯誤資訊內容,是在 Downloading https://files.pythonhosted.org/packages/c2/d7/90f34cb0d83a6c5631cf71dfe64cc1054598c843a92b400e55675cc2ac37/pip-18.1-py2.py3-none-any.whl (1.3MB)之時報的錯,表達的意思大致是模組下載太慢導致的網路問題,試了很多次仍然無法建立虛擬環境。
網上有的部落格說可能是中文路徑、pip需要升級、python安裝路徑中有空格等,都沒能解決問題。

最後使用 virtualenv myenv --no-setuptools 成功建立虛擬環境,建立虛擬環境後又在虛擬環境下使用 pip install setuptools命令給虛擬環境裝上setuptools.

可是下載模組的時候明明是pip下載失敗,我不安裝setuptools反而建立虛擬環境成功,並且立馬再建立其他的虛擬環境也能成功,這其中究竟是什麼原理就不清楚了。