代码之家  ›  专栏  ›  技术社区  ›  xji

无法运行base.compileCache:“在路径中找不到”

  •  0
  • xji  · 技术社区  · 6 年前

    我现在正在尝试预编译julia模块,以便它运行得更快。然而,我觉得奇怪的是 __precompile__() 在模块声明之前,似乎没有在文件夹中生成任何缓存文件。

    然后,我试图调用函数 Base.compilecache 按照以下步骤:

    1. 在项目文件夹中启动repl
    2. include("M.jl")
    3. Base.compilecache("M")

    然而,尽管前两个步骤完成时没有问题,并且我可以实际运行模块中定义的函数,但第三个步骤抱怨“错误:argumenterror:m not found in path”,我似乎仍然无法为模块生成任何缓存。

    我在这里做错了什么?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Tasos Papastylianou    6 年前

    编译后的模块在用户定义的地方生成,通常在linux中 ~/.julia/lib/v0.6/ . 我相信如果你往里面看你会发现 .ji 与模块的预编译版本相对应的文件。删除一个并在julia会话中再次尝试导入,以确认它将再次尝试预编译;如果是,则表示 __precompile__() 指令正在工作。

    另外,要注意 push! 自定义模块的路径(即源代码 .jl 部分,而不是预编译的路径 LOAD_PATH (即 push!(LOAD_PATH, "./") )如果未在默认位置“安装”(通常 ~/.julia/v0.6/ )当你要导入模块时,julia需要同时访问这两个模块。

    (注意,如果您更新了模块,您还应该看到正在进行预编译)