You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pathlib相对路径Mac正常Windows报错,求解决方案

问题排查与解决方案

核心原因

你遇到的问题是**Windows传统路径长度限制(默认260字符)**导致的:MacOS对文件路径长度没有严格限制,但Windows默认限制完整路径(包含目录和文件名)不超过260字符。虽然你的目标目录存在,但拼接特定文件名后总路径长度超出阈值,就会触发FileNotFoundError——改短文件名能正常保存也验证了这一点。

具体解决方法

1. 启用Windows长路径支持(推荐)

Windows 10 1607及以后版本支持突破260字符限制,但需要手动开启:

  • 通过组策略:
    打开本地组策略编辑器(运行gpedit.msc),依次导航到计算机配置 > 管理模板 > 系统 > 文件系统,找到并启用启用Win32长路径选项。
  • 通过注册表:
    打开注册表编辑器(运行regedit),定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,找到LongPathsEnabled(DWORD类型),将其值改为1。若该键不存在则新建。

2. 代码层面适配长路径

如果无法修改系统设置,可以在代码中强制Windows使用长路径API,给路径添加\\?\前缀:

import os
from pathlib import Path

def get_compatible_path(path):
    if os.name == 'nt':
        # 转换为绝对路径并添加长路径前缀
        return Path(f'\\\\?\\{path.resolve()}')
    return path

# 使用示例
output_dir = Path('../Trained_Models/Differential_gene_analysis/A Kidney Cancer Transcriptome Molecular Signature Identifies Tumors with Tumor Thrombus/Models train on TCGA data and test on Rodriguez data/Oct-XX-20XX')
output_dir = get_compatible_path(output_dir)
joblib.dump(model, output_dir / 'RandomForest_TumorThrombus_104.joblib')

3. 简化路径/文件名

临时应急方案:缩短深层目录的名称(比如用缩写)或简化文件名,确保完整路径长度不超过260字符。可以用以下代码查看当前路径总长度:

target_path = output_dir / 'RandomForest_TumorThrombus_104.joblib'
print(f"路径总长度:{len(str(target_path))}")

内容的提问来源于stack exchange,提问作者Ramiro Ramirez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 07:01:08