Python使用pip安装包时在Collecting报错 ( 运行超时 )

问题描述: Python萌新,在安装包的时候时钟卡死在Collecting,选择更新pip工具也一样出现同一个错误。

没有保存错误信息,在网上copy了相似的(前两行都出现了加粗字):
Traceback (most recent call last):
File “d:\usedtool\python\lib\site-packages\pip_vendor\urllib3\response.py”, line 302, in _error_catcher
yield
File “d:\usedtool\python\lib\site-packages\pip_vendor\urllib3\response.py”, line 384, in read
data = self._fp.read(amt)
File “d:\usedtool\python\lib\site-packages\pip_vendor\cachecontrol\filewrapper.py”, line 60, in read
data = self.__fp.read(amt)
File “d:\usedtool\python\lib\http\client.py”, line 449, in read
n = self.readinto(b)
File “d:\usedtool\python\lib\http\client.py”, line 493, in readinto
n = self.fp.readinto(b)
File “d:\usedtool\python\lib\socket.py”, line 586, in readinto
return self._sock.recv_into(b)
File “d:\usedtool\python\lib\ssl.py”, line 1009, in recv_into
return self.read(nbytes, buffer)
File “d:\usedtool\python\lib\ssl.py”, line 871, in read
return self._sslobj.read(len, buffer)
File “d:\usedtool\python\lib\ssl.py”, line 631, 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 “d:\usedtool\python\lib\site-packages\pip_internal\basecommand.py”, line 228, in main
status = self.run(options, args)
File “d:\usedtool\python\lib\site-packages\pip_internal\commands\install.py”, line 291, in run
resolver.resolve(requirement_set)
File “d:\usedtool\python\lib\site-packages\pip_internal\resolve.py”, line 103, in resolve
self._resolve_one(requirement_set, req)
File “d:\usedtool\python\lib\site-packages\pip_internal\resolve.py”, line 257, in _resolve_one
abstract_dist = self._get_abstract_dist_for(req_to_install)
File “d:\usedtool\python\lib\site-packages\pip_internal\resolve.py”, line 210, in _get_abstract_dist_for
self.require_hashes
File “d:\usedtool\python\lib\site-packages\pip_internal\operations\prepare.py”, line 310, in prepare_linked_requirement
progress_bar=self.progress_bar
File “d:\usedtool\python\lib\site-packages\pip_internal\download.py”, line 837, in unpack_url
progress_bar=progress_bar
File “d:\usedtool\python\lib\site-packages\pip_internal\download.py”, line 674, in unpack_http_url
progress_bar)
File “d:\usedtool\python\lib\site-packages\pip_internal\download.py”, line 898, in _download_http_url
_download_url(resp, link, content_file, hashes, progress_bar)
File “d:\usedtool\python\lib\site-packages\pip_internal\download.py”, line 618, in _download_url
hashes.check_against_chunks(downloaded_chunks)
File “d:\usedtool\python\lib\site-packages\pip_internal\utils\hashes.py”, line 48, in check_against_chunks
for chunk in chunks:
File “d:\usedtool\python\lib\site-packages\pip_internal\download.py”, line 586, in written_chunks
for chunk in chunks:
File “d:\usedtool\python\lib\site-packages\pip_internal\utils\ui.py”, line 159, in iter
for x in it:
File “d:\usedtool\python\lib\site-packages\pip_internal\download.py”, line 575, in resp_read
decode_content=False):
File “d:\usedtool\python\lib\site-packages\pip_vendor\urllib3\response.py”, line 436, in stream
data = self.read(amt=amt, decode_content=decode_content)
File “d:\usedtool\python\lib\site-packages\pip_vendor\urllib3\response.py”, line 401, in read
raise IncompleteRead(self._fp_bytes_read, self.length_remaining)
File “d:\usedtool\python\lib\contextlib.py”, line 99, in exit
self.gen.throw(type, value, traceback)
File “d:\usedtool\python\lib\site-packages\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.

解决方法: 使用国内镜像文件下载,即在pip命令后添加-i https://pypi.doubanio.com/simple
也可以更换成其他的网站,目前已知有

http://pypi.douban.com/ 豆瓣
http://mirrors.aliyun.com/pypi/simple 阿里云
http://pypi.hustunique.com/ 华中理工大学
http://pypi.sdutlinux.org/ 山东理工大学
http://pypi.mirrors.ustc.edu.cn/ 中国科学技术大学

示例:pip install pyecharts -i https://pypi.doubanio.com/simple

任何命令在后头直接添加就好了,即使是像python -m pip install --upgrade pip 也可以直接在后头加就行了。
python -m pip install --upgrade pip -i https://pypi.doubanio.com/simple

可以通过修改配置文件从而在以后的安装中无须手动添加

具体做法可以参照这篇文章为pip添加国内源 by Magicking

C:\Users\SZUT>pip3 install opencv-contrib-python -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com Collecting opencv-contrib-python Downloading http://mirrors.aliyun.com/pypi/packages/ef/51/3ceb85ecff5f26994b7aae2922b1aa38148dbfe88cab13d63bc6facbac88/opencv-contrib-python-4.11.0.86.tar.gz (150.6MB) 100% |████████████████████████████████| 150.6MB 6.6MB/s Requirement already satisfied: numpy>=1.13.3 in c:\users\szut\appdata\local\programs\python\python36\lib\site-packages (from opencv-contrib-python) Building wheels for collected packages: opencv-contrib-python Running setup.py bdist_wheel for opencv-contrib-python ... error Complete output from command c:\users\szut\appdata\local\programs\python\python36\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\SZUT\\AppData\\Local\\Temp\\pip-build-ewyk_w3w\\opencv-contrib-python\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d C:\Users\SZUT\AppData\Local\Temp\tmpr4tloixopip-wheel- --python-tag cp36: Traceback (most recent call last): File "c:\users\szut\appdata\local\programs\python\python36\lib\site-packages\skbuild\setuptools_wrap.py", line 613, in setup cmkr = cmaker.CMaker(cmake_executable) File "c:\users\szut\appdata\local\programs\python\python36\lib\site-packages\skbuild\cmaker.py", line 146, in __init__ self.cmake_version = get_cmake_version(self.cmake_executable) File "c:\users\szut\appdata\local\programs\python\python36\lib\site-packages\skbuild\cmaker.py", line 103, in get_cmake_version ) from err Problem with the CMake installation, aborting build. CMake executable is cmake ---------------------------------------- Failed building wheel for opencv-contrib-python Running setup.py clean for opencv-contrib-python Failed to build opencv-contrib-python Installing collected packages: opencv-contrib-python Running setup.
最新发布
03-23
<think>好的,用户遇到了在Windows系统下使用Python 3.6安装opencv-contrib-python,由于CMake问题导致的构建失败。我需要帮他解决这个问题。首先,我应该回忆一下常见的CMake相关错误以及解决方法。根据用户提供的引用内容,有几个可能的解决方案。 首先,用户可能没有正确安装CMake或者版本不兼容。引用中没有直接提到CMake的安装,但构建过程中需要CMake来编译部分依赖项。所以,我需要建议用户安装CMake并确保其路径正确添加到系统环境变量中。可能用户的环境变量没有设置好,导致pip无法找到CMake。 其次,用户可能使用的opencv-contrib-python版本与Python 3.6不兼容。查看引用,特别是引用3和4,提到安装特定版本如3.4.2.16并使用镜像源。虽然用户提到Python 3.6,而引用中的例子是Python 3.7,但可能3.4.2.16版本仍然兼容。因此,建议用户安装兼容版本,比如指定版本号为3.4.2.16,并使用镜像源加速下载。 另外,用户可能没有安装必要的依赖项,比如Visual C++构建工具。在Windows上编译Python扩展通常需要这些工具。例如,需要安装Visual Studio 2015或更高版本的C++构建工具,或者Microsoft Build Tools。这可能没有被用户安装,导致CMake构建失败。 还有可能用户尝试从源码构建opencv-contrib-python,但更简单的方法是使用预编译的wheel文件。如果用户安装的版本需要编译,但环境不满足,就会失败。所以建议用户安装不需要编译的预构建版本,或者使用较旧版本的库,这些版本可能有可用的wheel文件。 根据引用中的解决方案,用户可能需要先卸载已有的opencv包,再安装指定版本。例如,引用3提到先卸载再安装特定版本。同使用国内镜像源如阿里云或清华镜像可以避免下载超时或失败的问题。 总结可能的解决步骤: 1. 安装CMake并确保正确配置环境变量。 2. 安装Microsoft Visual C++构建工具。 3. 使用pip安装指定兼容版本和镜像源。 4. 使用预编译的wheel文件避免从源码构建。 另外,用户可能需要升级pip和setuptools,确保构建工具是最新的。或者尝试使用Anaconda环境,可能已经包含必要的依赖项。 现在需要将这些步骤整理成清晰的建议,确保用户能逐步操作。同,需要引用提供的资料中的方法,比如指定版本号和镜像源。还要注意用户的操作系统是Windows,Python版本是3.6,可能需要调整命令中的版本号,确保兼容性。</think>### 分步解决方案:修复 CMake 构建错误 1. **安装 CMake 并配置环境变量** 从 [CMake 官网](https://cmake.org/download/) 下载 Windows 64位安装包,安装勾选 **Add CMake to the system PATH**。验证安装: ```bash cmake --version ``` 2. **安装 Visual C++ 构建工具** - 下载 [Microsoft Build Tools](https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/),安装勾选 **C++ 生成工具** 和 **Windows 10 SDK** - 或通过命令行安装: ```bash pip install "setuptools>=60.0.0" # 升级 setuptools ``` 3. **安装兼容版本的 opencv-python** 使用国内镜像源加速安装,避免从源码构建: ```bash pip uninstall opencv-python opencv-contrib-python # 先卸载旧版本[^3] pip install opencv-python==3.4.2.16 -i https://mirrors.aliyun.com/pypi/simple/ [^4] pip install opencv-contrib-python==3.4.2.16 -i https://mirrors.aliyun.com/pypi/simple/ ``` 4. **验证安装** ```python import cv2 print(cv2.__version__) # 预期输出 3.4.2 ``` --- ### 相关问题 1. 如何检查 Python 环境中已安装的包版本? 2. 使用 Anaconda 安装 OpenCV 有哪些注意事项? 3. 如何解决 Python 包安装的依赖冲突问题? --- **引用说明** - 使用镜像源和指定版本号可绕过复杂构建步骤 - 卸载旧版本避免残留文件干扰 - 预编译版本无需 CMake 参与构建过程[^1][^2]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值