答案是必须同时启用Windows长路径注册表项(LongPathsEnabled=1)并确保Python 3.6+运行时支持,缺一不可;还需重启终端、验证os.path.supports_long_paths为True,否则VSCode中pip install仍会因路径超260字符报[WinError 206]。

VSCode里pip install报“文件名太长”,先看错误是不是OSError: [WinError 206]
这个错误几乎只出现在Windows上,根本原因是系统默认路径长度限制260字符,而VSCode调用的pip在解包依赖(比如tensorflow、pytorch)时生成的临时路径嵌套过深,轻松突破上限。它不是VSCode本身的问题,而是底层Python进程受系统限制卡住——所以改VSCode设置没用,得动系统和Python运行时。
必须同时满足:注册表LongPathsEnabled=1 + Python 3.6+ 运行时支持
只改注册表或只换Python版本都不够,两者缺一不可:
- 确认Windows版本 ≥ 1607(
winver查看),然后以管理员身份运行PowerShell执行:reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f - 重启命令行终端(不是电脑),再启动VSCode——这点常被忽略,不重启终端,新注册表值不会被继承
- 验证Python是否真正启用长路径:
python -c "import os; print(os.path.supports_long_paths)"→ 必须输出True - 如果输出
False,说明Python进程仍走旧API,需确保环境变量PYTHONLEGACYWINDOWSSTDIO为空,且sys.flags.utf8_mode == 1
PyCharm用户注意:VSCode不走组策略,别混用方案
很多教程提到用gpedit.msc启用“启用 Win32 长路径”,这确实有效,但它属于本地组策略,对VSCode调用的python.exe进程不一定生效——尤其当VSCode使用的是便携版Python或非系统安装路径时。VSCode更依赖注册表+Python运行时组合,而不是组策略。如果你在VSCode里试了组策略没用,不是操作错,是机制不匹配。
TikHub API 多平台数据爬取工具,支持抖音/TikTok/B站等。用户提及以下需求时调用:1) 爬取视频或评论;2) 获取用户信息/粉丝列表;3) 批量下载无水印视频;4) 抖音链接转文字(下载→音频→Whisper pipeline);5) 调用 TikHubAPI。
实在不能改系统?用--target绕过site-packages深层结构
企业环境禁用注册表修改时,这是最稳妥的临时方案:
立即学习“Python免费学习笔记(深入)”;
- 新建一个短路径目录,比如
C:\pylibs - 在VSCode终端里运行:
pip install --target C:\pylibs some-package - 在代码开头加:
import sys; sys.path.insert(0, r'C:\pylibs'),或把C:\pylibs加入PYTHONPATH环境变量 - 注意:
--target安装的包不会出现在pip list里,也不参与依赖解析,适合单项目隔离使用
真正麻烦的不是改注册表,而是改完后忘记重启终端,或者没验证os.path.supports_long_paths是否为True——这两个点踩中任何一个,VSCode里的pip install照样失败。

















