背景
最近在尝试通过UI工具安装 Xlwings
时,遇到了一个让人头疼的错误:
vbnet
WARNING: Connection timed out while downloading.
ERROR: Could not install packages due to an OSError: [WinError 32] 另一个程序正在使用此文件,进程无法访问...
不仅下载中断,还提示文件被占用。作为一名刚接触Python的开发者,这个问题让我一度陷入困惑。经过多次排查和尝试,最终找到了解决方案。本文将详细复现问题并提供保姆级解决步骤,帮助你快速完成安装!
问题复现
-
安装命令
使用UI工具PyCharm来安装Xlwings
-
报错现象
- 下载
pywin32
依赖时超时(Connection timed out
)。 - 文件被占用错误(
WinError 32
),无法删除临时文件。
- 下载
问题分析
1. 网络连接超时
-
原因:
- PyPI(Python官方包索引)服务器响应缓慢。
- 国内网络环境可能导致下载中断(如
pywin32-310-cp313-cp313-win_amd64.whl
文件体积较大)。
2. 文件被占用(WinError 32)
-
原因:
- Windows系统中某些进程(如杀毒软件、资源管理器、IDE)正在使用临时文件。
- 常见于公司电脑或受限制账户下。
解决方案
✅ 第一步:配置Python环境变量
-
确认Python安装路径
-
打开命令行(CMD/PowerShell),输入:
bashwhere python
-
输出示例(根据实际路径调整):
makefileC:\Users\LawrenceKuang\AppData\Local\Programs\Python\Python313\python.exe
-
-
添加环境变量
-
打开 系统属性 → 高级系统设置 → 环境变量。
-
在 用户变量 中找到
Path
,点击"编辑"。 -
添加以下路径(根据实际Python版本调整):
makefileC:\Users\LawrenceKuang\AppData\Local\Programs\Python\Python313 C:\Users\LawrenceKuang\AppData\Local\Programs\Python\Python313\Scripts
-
-
验证配置
-
重启命令行,输入:
csspip --version
-
若输出
pip
版本号,说明配置成功。
-
✅ 第三步:强制使用 --user
参数安装
-
执行命令
csspip install --user xlwings
-
为什么必须加
--user
?- 权限不足 :全局安装需要管理员权限,而
--user
会将包安装到用户目录(如C:\Users\用户名\AppData\Roaming\Python
),避免权限冲突。 - 文件锁定:某些系统进程(如杀毒软件)可能锁定全局安装目录的文件,导致安装失败。
- 权限不足 :全局安装需要管理员权限,而
-
安装成功验证
-
运行以下代码测试:
pythonimport xlwings as xw print(xw.__version__)
-
若输出版本号(如
0.33.15
),说明安装成功。
-
进阶技巧:加速下载 & 避免超时
1. 使用国内镜像源
-
临时使用:
csspython -m pip install --user xlwings -i https://pypi.tuna.tsinghua.edu.cn/simple
-
永久配置:
-
创建或修改
pip.ini
文件(路径:C:\Users\用户名\pip\pip.ini
),添加:ini[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple
-
2. 手动安装离线包
-
适用场景:网络极差或频繁超时。
-
步骤:
-
从 PyPI官网 下载
.whl
文件。 -
使用命令行安装:
csspython -m pip install path_to_downloaded_file.whl --user
-