带导入的最小 Julia 包?

问题描述 投票:0回答:1

如何生成依赖于 ForwardDiff 的 Julia 包(例如)?

我正在尝试在 Julia 中创建一个具有依赖项的包,但失败了。我正在尝试遵循官方文档here。我的最小非工作示例如下。我在 Jupyter Lab 中输入这些命令,我使用的是 Julia 1.9.3。

如果你不想阅读所有这些,我所做的就是使用 Pkg 的

generate
命令生成一个空项目
Foo
。然后,我将
using ForwardDiff
添加到
Foo.jl
,并通过
]add ForwardDiff
添加 ForwardDiff 作为依赖项。我已经
activate
Foo 和一切了。一旦我
using Foo
,我就会收到错误消息。我无法修复它。

我知道PkgTemplates。我试过了,同样的问题。

]generate Foo
  Generating  project Foo:
    Foo/Project.toml
    Foo/src/Foo.jl
]activate Foo
Activating project at `~/.../Foo`
]add ForwardDiff
   Resolving package versions...
    Updating `~/.../Foo/Project.toml`
  [f6369f11] + ForwardDiff v0.10.36
...
;cat Foo/src/Foo.jl
module Foo
using ForwardDiff
greet() = print("Hello World!")

end # module Foo
> using Foo
[ Info: Precompiling Foo [b793ecfc-1afd-4979-b49f-7079086f47c4]
ERROR: LoadError: ArgumentError: Package ForwardDiff [f6369f11-7733-5829-9624-2563aa707210] is required but does not seem to be installed:
 - Run `Pkg.instantiate()` to install all recorded dependencies.
> using Pkg; Pkg.instantiate()
Precompiling project...
  ✗ Foo
  0 dependencies successfully precompiled in 1 seconds. 19 already precompiled.
  1 dependency errored. To see a full report either run `import Pkg; Pkg.precompile()` or load the package
...
]resolve
  No Changes to `~/Dropbox/2023/Spectral Barrier Method/julia/Foo/Project.toml`
  No Changes to `~/Dropbox/2023/Spectral Barrier Method/julia/Foo/Manifest.toml`
]instantiate
(nothing happens)
> using Foo
[ Info: Precompiling Foo [b793ecfc-1afd-4979-b49f-7079086f47c4]
ERROR: LoadError: ArgumentError: Package ForwardDiff [f6369f11-7733-5829-9624-2563aa707210] is required but does not seem to be installed:
 - Run `Pkg.instantiate()` to install all recorded dependencies.
...

我还尝试过各种内核重启,试图让 Julia 做一些不同的事情。根据重新启动的次数和时间,您会收到不同的错误消息。

package julia jupyter-lab
1个回答
0
投票

在 Julia 讨论板上找到了解决方案。

解决方案是由几个人找到的,我归功于 nasjko。我的主要问题是 LOAD_PATH 和 JULIA_LOAD_PATH 可能会以令人困惑的方式与包加载交互,并且显然不鼓励使用它们。我有。在我的 JULIA_LOAD_PATH 中。一旦我从路径中删除它,我就能做到

using MyPackage
。详细信息请参阅下面的主题。

https://discourse.julialang.org/t/streamlined-way-of-making-a-package/104682/3

© www.soinside.com 2019 - 2024. All rights reserved.