问题:同一个名字的crate可能因为不同的crate的添加,导致有多个版本,导致类型定义也被判定为多个,然后报错。目前通过手工调整新引入的crate版本来处理冲突,很麻烦,所以:rust可以像python一样,一个同名的包就用一个版本吗,或者它已经有的包就不能共用吗?那个cargo home下的crates一堆同名的不同版本的,感觉就很冗余(crate是通过cargo add 添加的,需要手工重新调整版本,以便解决报错)
error[E0308]: mismatched types
--> src/main.rs:649:28
|
649 | writer.write_dataframe(&df1);
| --------------- ^^^^ expected `polars_core::frame::DataFrame`, found `DataFrame`
| |
| arguments to this method are incorrect
|
= note: `DataFrame` and `polars_core::frame::DataFrame` have similar names, but are actually distinct types
note: `DataFrame` is defined in crate `polars_core`
--> D:\Programs\CargoHome\registry\src\index.crates.io-6f17d22bba15001f\polars-core-0.43.1\src\frame\mod.rs:170:1
|
170 | pub struct DataFrame {
| ^^^^^^^^^^^^^^^^^^^^
note: `polars_core::frame::DataFrame` is defined in crate `polars_core`
--> D:\Programs\CargoHome\registry\src\index.crates.io-6f17d22bba15001f\polars-core-0.44.2\src\frame\mod.rs:175:1
|
175 | pub struct DataFrame {
| ^^^^^^^^^^^^^^^^^^^^
= note: perhaps two different versions of crate `polars_core` are being used?
note: method defined here
--> D:\Programs\CargoHome\registry\src\index.crates.io-6f17d22bba15001f\polars_excel_writer-0.10.0\src\xlsx_writer.rs:264:12
- 这个报错把上面那个polars_excel_writer-0.10.0版本换成0.9就没有了,但这种很麻烦,要是引入的包很多,一个一个地手工调整引入的crate版本?
1
共 3 条评论, 1 页
评论区
写评论前面带个域指定一下不行吗?
人家python求之不得的,在rust这实现了反而被你弃如敝屣,呃呃呃呃呃呃呃呃呃呃呃呃
根据我的经验这种情况先运行下cargo update,不行改成最新版本,还不行就去对应库的issues下看看解决方法。