Pkg依赖关系

搬运了别人的一段代码,Julia运行时出现以下警告:


但是我查看了文件,其中有using LazySets这个语句
图片
请问这个问题是怎么回事?

using 这个包当然是要用它了,但你并没有把他加到你的依赖里,依然能用,但是会报个警告。

怎么解决这个问题警告也说了。

不是包开发者可以忽略这个警告能用就行,或者去提个 issue。

请问如何把它加到依赖里?需要在哪个文件里写什么代码?第一次写Pkg有点晕头转向

翻翻文档?

https://docs.juliacn.com/latest/stdlib/Pkg/

一般来说开发环境加包,会自动加入依赖的。

警告里提示了 Pkg.resolve() 你试试。
或者手工加到 Project.toml 里,得去查一下这个包自己的 UUID。

如果你能给一个代码的目录结构的话,会对给出解决方案有点帮助 (例如,Project.toml 有没有,在哪里…)

我按照Julia提示的方法输入了Pkg.resolve()再次测试没有报错,但是Project.toml没有变化,重启Julia再次测试还是会有同样的警告。
我的Package是另一个Package删减和修改产生的,Project.toml文件如下:
图片
原package的Project.toml文件如下:
图片
我把下面的文件中的[deps]这一栏的语句复制到我自己的文件里,问题就可以解决,请问我的理解对吗?

问题解决了,是这样的:
首先我直接在文件里复制粘贴,发现无效。
然后我按照二楼给的文档,cd到project所在的目录,然后在Pkg模式下"activate ."激活目录,逐个手动add依赖的Packages,然后再返回REPL使用”Pkg.resolve()“。现在问题解决了,非常感谢楼上热心帮助。 :+1:

2 个赞

一打开Julia之后的pkg使用的是全局默认的project(比如v1.3),包管理是基于project的,所以要先激活你要用的project。另外除了手动改Project.toml以外,你可以在激活project的前提下add新包,你add的东西会成为当前project的依赖。