Rust解析docx文件时依赖包与clap库的使用问题
问题解决指南
一、docx_rs 依赖找不到的问题
- crates.io上的正确包名是
docx_rs(下划线分隔),不是docx-rs(连字符分隔)。 - 修改
Cargo.toml的依赖配置为:[dependencies] docx_rs = "0.4.7" - 执行
cargo build重新拉取依赖即可解决找不到包的错误。
二、clap 版本不兼容的问题
你当前使用的clap 2.33.0是旧版本,而clap::Parser、#[derive(Parser)]宏、command/arg属性、Args::parse()这些都是clap 3.0及以上版本才引入的特性,二者API完全不兼容,解决方式二选一:
方案1:升级clap到新版本
- 修改
Cargo.toml的clap依赖,指定版本并开启derive特性:[dependencies] clap = { version = "4.0", features = ["derive"] } - 升级后即可正常使用教程中的
Parser相关语法。
方案2:沿用clap 2.33.0的旧API
如果不想升级,需改用2.x版本的写法,示例代码如下:
use clap::{App, Arg}; fn main() { let matches = App::new("Docx解析工具") .arg(Arg::with_name("input") .short("i") .long("input") .required(true) .help("指定要解析的docx文件路径")) .get_matches(); let input_path = matches.value_of("input").unwrap(); // 后续解析docx的逻辑 }
内容的提问来源于stack exchange,提问作者mike rodent
相关产品推荐
相关产品推荐

