pip安装Python包时遇长路径DLL加载失败错误如何解决?
解决Windows长路径下Python pip安装依赖的路径过长错误
问题重现
执行pip安装时出现以下错误:
File "C:\wgyikhefghwefuyhedg\ausyfgyhfhbsdguifhlygsfkugysfsdfukysdgfksd\jsgkasdfhkghksduyfgsajkfgusadufgfkyhsudgfkusdyfbsfgsudkfgsduyfgasdku\qwertyuiop\sierghdsyfgh\iaseufbhsaldgj\qasderf.venv\lib\site-packages\charset_normalizer\cd.py", line 9, in
from .md import is_suspiciously_successive_range
ImportError: DLL load failed while importing md__mypyc: The filename or extension is too long.
已尝试官方「移除路径长度限制」方案并重启,但问题仍存在,短路径下安装正常。
可行解决方案
1. 给项目目录创建短路径别名
- 用
subst命令为长路径目录分配一个盘符别名:subst X: "你的长项目路径" - 切换到该盘符,激活虚拟环境并执行安装:
X: .\.venv\Scripts\activate pip install -r requirements.txt - 提示:该别名是临时的,系统重启后需要重新执行
subst命令。
2. 配置pip使用短路径缓存
- 修改pip的全局缓存目录到短路径,避免缓存文件路径叠加过长:
pip config set global.cache-dir "C:\pip_cache" - 配置完成后再执行pip安装,缓存文件会存储在短路径下,减少路径长度压力。
3. 直接调用虚拟环境的pip绝对路径
- 结合短路径别名,直接使用虚拟环境内pip的绝对路径执行安装:
X:\.venv\Scripts\pip.exe install -r requirements.txt
4. 升级charset-normalizer包
- 错误源于该包的模块导入问题,旧版本可能对长路径支持不足:
pip install --upgrade charset-normalizer - 如果直接升级失败,可先在短路径下完成升级,再将虚拟环境复制回长路径(复制后需重新激活虚拟环境,确保路径配置正确)。
内容的提问来源于stack exchange,提问作者Sharath Cherian Thomas
相关产品推荐
相关产品推荐

