为何Rust的csv crate 0.15.0中找不到ReaderBuilder?
解决
csv::ReaderBuilder无法找到的错误 嘿,这个问题我太熟悉了!你遇到的错误根源在于**csv版本的差异**:
你当前使用的是csv 0.15.0,这个旧版本里ReaderBuilder并不是直接放在csv根命名空间下的,它被藏在了csv::reader子模块中。而你看到的官方示例,用的是更新的csv版本(比如1.x系列),这些版本已经把ReaderBuilder移到了根模块,所以直接写csv::ReaderBuilder是有效的。
两种解决方案
方案1:不升级版本,调整代码路径
如果你想继续使用0.15.0版本,只需要把代码里的路径改成子模块的路径即可:
extern crate csv; fn main() { let mut test = csv::reader::ReaderBuilder::new(); }
方案2:升级csv版本到最新稳定版
更推荐的方式是升级csv到当前的稳定版本(比如1.2.x或更高),这样就能和官方示例的写法保持一致。修改你的Cargo.toml依赖:
[dependencies] csv = "1.2" # 可以替换成最新的稳定版本号 rustc-serialize = "0.3.24"
升级后,你原来的代码就可以正常编译运行了。另外提一句:新版本的csv默认使用serde进行序列化,如果你不需要rustc-serialize的话,可以考虑移除这个依赖,减少冗余。
内容的提问来源于stack exchange,提问作者Greg
相关产品推荐
相关产品推荐

