我的目标是:在带有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
然后有两种选择,我知道
- 包括模块
MyPackage
- 包
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/
。