Julia 管理自定义包和项目

Julia 管理自定义包和项目,julia,Julia,我是朱莉娅的新手 我正在寻找构建目录、包和项目的最佳实践 与Python相比,Julia中最烦人的部分如下: 例如,include的路径似乎取决于执行文件的路径。我想保留一个特定的引用路径,以便可以轻松加载一些文件 我问了类似的问题,有人告诉我,创建包并使用和将很容易管理我的项目。 然而,在加载文件和模块时,这确实令人困惑。比如说, a) MyPkg1/src/MyPkg1.jl module MyPkg1 export func_export function func_export

我是朱莉娅的新手

我正在寻找构建目录、包和项目的最佳实践

与Python相比,Julia中最烦人的部分如下:

  • 例如,
    include
    的路径似乎取决于执行文件的路径。我想保留一个特定的引用路径,以便可以轻松加载一些文件
  • 我问了类似的问题,有人告诉我,创建包并使用
    将很容易管理我的项目。
    然而,在加载文件和模块时,这确实令人困惑。比如说,
  • a)
    MyPkg1/src/MyPkg1.jl

    module MyPkg1
    
    export func_export
    
    function func_export
        println("hi")
    end
    
    end
    
    using MyPkg1
    using Test
    
    @testset "MyPkg1.jl" begin
        func_export()  # raise error: func_export not defined
    end
    
    using MyPkg2
    using Test
    using MyPkg1  # other Pkg
    
    @testset "MyPkg2.jl" begin
        func_export()  # raise error
    end
    
    b)
    MyPkg1/test/runtests.jl

    module MyPkg1
    
    export func_export
    
    function func_export
        println("hi")
    end
    
    end
    
    using MyPkg1
    using Test
    
    @testset "MyPkg1.jl" begin
        func_export()  # raise error: func_export not defined
    end
    
    using MyPkg2
    using Test
    using MyPkg1  # other Pkg
    
    @testset "MyPkg2.jl" begin
        func_export()  # raise error
    end
    
    c)
    MyPkg2/test/runtests.jl

    module MyPkg1
    
    export func_export
    
    function func_export
        println("hi")
    end
    
    end
    
    using MyPkg1
    using Test
    
    @testset "MyPkg1.jl" begin
        func_export()  # raise error: func_export not defined
    end
    
    using MyPkg2
    using Test
    using MyPkg1  # other Pkg
    
    @testset "MyPkg2.jl" begin
        func_export()  # raise error
    end
    
    如上述代码所述,出现了一些错误(见b),c)

    所以我的问题是

  • 如果我在上面的例子中做错了什么,请详细解释错误发生的原因
  • 在目录结构的意义上,开发Julia项目的最佳实践是什么

  • 我不确定这是否是一个输入错误,但需要用括号定义
    func\u export
    function func\u export()…
    是的,这是一个输入错误。我不确定它是否会使错误消失,因为代码实际上是说明性的东西。它会使错误消失。如果你问一个特定的错误,代码不能是“说明性的”。我不确定这是否是一个输入错误,但是
    func\u export
    需要用括号定义:
    function func\u export()…
    是的,这是一个输入错误。我不确定它是否会使错误消失,因为代码实际上是说明性的东西。它会使错误消失。如果你要求一个特定的错误,代码不能是“说明性的”。