Название: Ошибка сборки Rust: LazyV2 Не найдено в protobuf: :rt При использовании Rust_tokenizers Зависимость
Описание:
Я столкнулся с проблемой при создании моего проекта Rust, который включает в себя зависимости, связанные с машинным обучением. В частности, я работаю с крейтомrust_tokenizers как часть более крупного проекта, который использует крейтыrust-bert и tch для задач НЛП. Однако моя сборка завершается неудачей из-за ошибок, указывающих на отсутствующий тип LazyV2 в модуле protobuf::rt.
Вот подробное сообщение об ошибке:
Код: Выделить всё
error[E0433]: failed to resolve: could not find `LazyV2` in `rt`
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rust_tokenizers-8.1.1/src/vocab/sentencepiece_proto/sentencepiece_model.rs:1536:109
|
1536 | ...protobuf::rt::LazyV2::INIT;
| ^^^^^^ could not find `LazyV2` in `rt`
error[E0412]: cannot find type `LazyV2` in module `protobuf::rt`
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rust_tokenizers-8.1.1/src/vocab/sentencepiece_proto/sentencepiece_model.rs:1536:44
|
1536 | ...::protobuf::rt::LazyV2 = ::...
| ^^^^^^ not found in `protobuf::rt`
Контекст проекта:
- Проект включает в себя создание веб-сервера с использованием actix-web в сочетании с NLP и инструменты токенизации, такие как Rust-bert и Rust_tokenizers. Цель — создать API обработки текста.
- Я пытаюсь поддерживать актуальность зависимостей, но столкнулся с этой проблемой сборки, вероятно, из-за protobuf версия, используемаяrust_tokenizers.
Код: Выделить всё
[package]
name = "parser"
version = "0.1.0"
edition = "2021"
[dependencies]
actix-web = "4.0.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
signal-hook = "0.3"
scraper = "0.12.0"
tokio = { version = "1", features = ["full"] }
tch = "^0.14.0"
rust-bert = "0.22.0"
rust_tokenizers = "5.0"
torch-sys = "^0.14.0"
tfidf = "0.1.0"
serde-pickle = "0.1"
linfa = "0.5.0"
linfa-clustering = "0.5.0"
- < li>Проверенные версии зависимостей:
- Я проверил, что все версии соответствующих зависимостей (например, ржавчина -bert,rust_tokenizers, tch) совместимы, особенно с учетом их зависимости от protobuf.
- Исследование protobuf API:
- Похоже, что LazyV2 мог быть удален или переименован в последних версиях protobuf. Однако я не уверен, следует ли мне понизить версию protobuf вручную или новая версияrust_tokenizers решит эту проблему.
- Что вызывает ошибку LazyV2?: Это связано с несоответствием конкретной версии protobuf и Rust_tokenizers? Если да, то как я могу решить эту проблему?
- Существует ли совместимая версияrust_tokenizers, которая работает с текущей версией protobuf API?: Если да, следует ли мне обновить Cargo.toml или понизить версию других ящиков?
- Есть ли альтернативные решения?: Должен ли я вручную настроить версию protobuf или есть лучший подход, обеспечивающий бесперебойную совместную работу всех зависимостей?
- Версия Rust: Rustc 1.67.0
- Версии ящиков:
Код: Выделить всё
rust_tokenizers = "5.0" Код: Выделить всё
rust-bert = "0.22.0"Код: Выделить всё
tch = "^0.14.0"Код: Выделить всё
torch-sys = "^0.14.0"
Будем благодарны за любые рекомендации! Заранее спасибо!
Благодаря этому дополнительному контексту и подробному объяснению проблемы этот вопрос не должен быть помечен как «в основном код» и должен приглашать больше пользователей. полезные ответы.
Подробнее здесь: https://stackoverflow.com/questions/790 ... zers-crate
Мобильная версия