尝试在 Julia 上安装自定义包时出错

Error while trying to install custom package on Julia

我正在尝试使用命令 Pkg.add(PackageSpec(path = "")) 在 Julia 中安装自定义包,该命令位于我的本地目录中。我使用本地路径中的 Julia documentation. But every time when I am trying to install my custom package using PackageSpec 创建了我的包,它抛出了一个错误。以下错误是 -

Cloning git-repo `D:\df_sql\src\df_sql.jl`
ERROR: failed to clone from D:\df_sql\src\df_sql.jl, error: GitError(Code:ERROR, Class:Net, failed to resolve address for D: No such host is known. )
Stacktrace:
 [1] pkgerror(::String) at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.0\Pkg\src\Types.jl:120
 [2] #clone#2(::Nothing, ::Base.Iterators.Pairs{Symbol,Any,Tuple{Symbol,Symbol},NamedTuple{(:isbare, :credentials),Tuple{Bool,LibGit2.CachedCredentials}}}, ::Function, ::String, ::String) at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.0\Pkg\src\GitTools.jl:107
 [3] #handle_repos_add!#32(::Bool, ::Nothing, ::Function, ::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at .\none:0
 [4] #handle_repos_add! at .\none:0 [inlined]
 [5] #add_or_develop#15(::Symbol, ::Bool, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Function, ::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.0\Pkg\src\API.jl:59
 [6] #add_or_develop#14 at .\none:0 [inlined]
 [7] #add_or_develop at .\none:0 [inlined]
 [8] #add_or_develop#10 at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.0\Pkg\src\API.jl:32 [inlined]
 [9] #add_or_develop at .\none:0 [inlined]
 [10] #add#20 at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.0\Pkg\src\API.jl:74 [inlined]
 [11] add(::Pkg.Types.PackageSpec) at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.0\Pkg\src\API.jl:74
 [12] top-level scope at none:0

我的项目结构是-

我正在使用 Julia 版本 1.6.0 知道如何解决这个问题!!!

我相信您需要在该文件夹中有一个初始化的 Git 存储库才能将其添加为一个包。以下是我为获取可以在 Julia 本地安装的软件包所做的步骤:

  1. 设置
using Pkg
Pkg.generate("MyPackage")
open("MyPackage/src/MyPackage.jl","w") do f
    println(f, """
module MyPackage
foo(what) = println("Hello " * what)
export foo
end
    """)
end
  1. ;进入命令行shell模式:
shell> cd MyPackage

shell> git init

shell> git add *

shell> git commit -m init

shell> cd ..
  1. 现在你可以安装包了
julia> Pkg.add(path="MyPackage")
     Cloning git-repo `C:\temp\MyP\MyPackage`
    Updating git-repo `C:\temp\MyP\MyPackage`
    Updating registry at `C:\JuliaPkg\Julia-1.7.0\registries\General.toml`
   Resolving package versions...
    Updating `C:\JuliaPkg\Julia-1.7.0\environments\v1.7\Project.toml`
  [7e0d665f] + MyPackage v0.1.0 `..\..\..\..\temp\MyP\MyPackage#master`
    Updating `C:\JuliaPkg\Julia-1.7.0\environments\v1.7\Manifest.toml`
  [7e0d665f] + MyPackage v0.1.0 `..\..\..\..\temp\MyP\MyPackage#master`
Precompiling project...
  1 dependency successfully precompiled in 5 seconds (316 already precompiled)
  1. 包已安装,可以使用
julia> using MyPackage

julia> foo("world")
Hello world

备注

您可以通过使用 Pkg.develop 来避免初始化 Git 存储库,在上述说明的第 1 步之后您可以执行以下操作:

julia> Pkg.develop(path="MyPackage")
   Resolving package versions...
    Updating `C:\JuliaPkg\Julia-1.7.0\environments\v1.7\Project.toml`
  [7e0d665f] + MyPackage v0.1.0 `..\..\..\..\temp\MyP\MyPackage`
    Updating `C:\JuliaPkg\Julia-1.7.0\environments\v1.7\Manifest.toml`
  [7e0d665f] + MyPackage v0.1.0 `..\..\..\..\temp\MyP\MyPackage`

julia> using MyPackage
[ Info: Precompiling MyPackage [7e0d665f-f51f-4097-93d9-367fa446d15a]

julia> foo("world")
Hello world