使用MLJar API Python Wrapper训练模型时出现[Errno 2]文件不存在错误求助
解决MLJar API Python Wrapper训练时「No such file or directory」错误
我之前也碰到过MLJar这个临时文件找不到的问题,给你几个实用的排查和解决方向:
检查临时目录的权限与可用性
首先确认系统的/tmp目录是否存在,且当前用户有读写权限。可以在终端执行:ls -ld /tmp正常输出应该是
drwxrwxrwt(所有用户可读写,且有粘滞位)。如果权限不对,可执行:sudo chmod 1777 /tmp修复权限后再重试训练。
绕开自动生成临时文件的逻辑
MLJar在接收DataFrame作为输入时,会自动将其转存为/tmp下的临时CSV。如果这个生成过程出了问题,你可以手动导出数据到本地文件,再传递给MLJar:import pandas as pd # 假设你的数据集是df df.to_csv("./my_dataset.csv", index=False) # 用本地文件路径训练模型 from supervised.automl import AutoML automl = AutoML() automl.train("./my_dataset.csv", target="your_target_column")这种方式跳过了MLJar的临时文件生成步骤,能排查是不是自动转存环节出了问题。
自定义MLJar的临时文件目录
你可以通过设置环境变量,让MLJar把临时文件存在你可控的目录下,避免/tmp的权限或清理问题:import os # 设置自定义临时目录 custom_tmp_dir = "/home/your_username/mljar_temp" os.environ["MLJAR_TMP_DIR"] = custom_tmp_dir # 确保目录存在 os.makedirs(custom_tmp_dir, exist_ok=True) # 之后再初始化MLJar并训练 from supervised.automl import AutoML automl = AutoML() automl.train(your_data, target="your_target_column")升级MLJar及依赖
这个问题可能是旧版本的bug,尝试升级MLJar到最新版本:pip install --upgrade mljar-supervised同时检查pandas、numpy等依赖是否为兼容版本,避免因依赖冲突导致的文件生成失败。
排查系统临时文件清理机制
部分Linux系统会定期清理/tmp目录(比如通过systemd-tmpfiles),如果MLJar生成临时文件后还没开始训练就被清理,也会触发这个错误。你可以临时关闭自动清理(不推荐长期使用),或者在训练前手动生成一个测试文件,确认它不会被快速清理:touch /tmp/test_temp_file.csv # 等待几分钟后检查文件是否存在 ls /tmp/test_temp_file.csv
内容的提问来源于stack exchange,提问作者Victor Valente
相关产品推荐
相关产品推荐

