如何在Julia 1.7中包含文件模块



我的目标是:在带有M1处理器的Mac上的Julia 1.7中,我将包含一个包含许多函数的模块文件。

我试着按照这个线程生成我自己的包但它产生了一个错误。

我遵循了答案,但当我尝试导入MyPackage时,Julia说:ArgumentError:在当前路径中找不到Package MyPackage。

对于pwd(),当前路径为Users/myname,并且在此文件夹中存在MyPackage。

通过命令";导入MyPackage";在哪里可以看到包导入的默认文件夹?

我哪里错了?

对不起我的英语。

我知道这里有两个选项。假设我生成了一个具有以下文件结构的包

MyPackage/
src/
MyPackage.jl
Project.toml

CCD_ 2为

module MyPackage
export greet
greet() = print("Hello World!")
end # module

然后有两种选择,我知道

  1. 包括模块MyPackage
  2. MyPackage嵌入Julia的生态系统

假设pwd是MyPackage/

第一个选项

julia> include("src/MyPackage.jl")
Main.MyPackage
julia> using .MyPackage
julia> greet()
Hello World!

注意using语句中的点。

第二个选项

启动Julia REPL并进入pkg模式,然后是

(@v1.6) pkg> dev MyPackage/
Resolving package versions...
Updating `~/.julia/environments/v1.6/Project.toml`
[88e94d31] + MyPackage v0.1.0 `foo/bar/MyPackage`
Updating `~/.julia/environments/v1.6/Manifest.toml`
[88e94d31] + MyPackage v0.1.0 `foo/bar/MyPackage`
(@v1.6) pkg> st
Status `~/.julia/environments/v1.6/Project.toml`
[6e4b80f9] BenchmarkTools v1.3.1
[0772a1fa] CubicEoS v0.2.0
..........
[88e94d31] MyPackage v0.1.0 `foo/bar/MyPackage`
..........
[09ab397b] StructArrays v0.6.5
[a759f4b9] TimerOutputs v0.5.15

st命令表示MyPackage在默认环境中可用。

那么你应该能够import/using这个包。您应该第一次看到预编译消息。

julia> using MyPackage
[ Info: Precompiling MyPackage [88e94d31-ecaf-41ca-ae10-053d89a189ff]
julia> greet()
Hello World!

附言:本地包裹的最佳地点是.julia/dev/

最新更新