Julia - 本地编译 Pkg 入门

Julia - getting started with local compiled Pkg

提问人:Martin Brown 提问时间:11/15/2023 最后编辑:Martin Brown 更新时间:11/16/2023 访问量:48

问:

这是在 Julia 1.9.3 上。我正在尝试使用高精度算术和 Remez.jl 包来测试一些想法。我有代码,编译正常。我可以用 Julia 作为一种语言做玩具,但我无法弄清楚如何使编译的“Remez”本地包对 julia 环境可见,以运行初始 runtests.jl 或我的代码。这是控制台输出,我已经查看了有关 SO 的各种建议并尝试了它们,但无济于事。我很确定这是 Julia 环境中的一个经典新手错误,但我只是 没有找到正确的常见问题解答。 请有人告诉我我在这里做错了什么吗?

$ julia Remez.jl
$ julia runtests.jl
ERROR: LoadError: ArgumentError: Package Remez not found in current path.
- Run `import Pkg; Pkg.add("Remez")` to install the Remez package.
Stacktrace:
[1] macro expansion
@ ./loading.jl:1630 [inlined]
[2] macro expansion
@ ./lock.jl:267 [inlined]
[3] require(into::Module, mod::Symbol)
@ Base ./loading.jl:1611
in expression starting at /home/martin/Downloads/runtests.jl:1
$ import Pkg; Pkg.add("Remez")
bash: syntax error near unexpected token `"Remez"'
$ Run 'import Pkg; Pkg.add("Remez")'
Command 'Run' not found, did you mean:
[snip]
$ import Pkg; Pkg.add("Remez")
bash: syntax error near unexpected token `"Remez"'
$ using Pkg; Pkg.add("Remez")
bash: syntax error near unexpected token `"Remez"'
$ import Pkg; Pkg.add(".Remez")
bash: syntax error near unexpected token `".Remez"'
$ julia -v
julia version 1.9.3

以及其他一些排列组合,都具有相同的“不行”结果。 感谢您的第一个答案,我希望它能解决问题,但不幸的是,我仍然收到完全相同的错误消息。我在下面包含相关的 Project.toms 文件。我真的不明白它是如何工作的。

name = "Remez"
uuid = "2e7db186-766a-50e7-8928-5c30181fb135"
authors = ["Simon Byrne <redacted>"]
version = "0.1.1"

[compat]
julia = "1.0"

[extras]
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[targets]
test = ["Test"]

感谢您的任何启发。我敢肯定这是一件非常愚蠢的事情

软件包 Julia 数学优化

评论

0赞 PaSTE 11/15/2023
我建议你阅读 docs.julialang.org/en/v1/manual/getting-started。您发出的前两个命令 , 将启动 julia,执行文件中列出的所有代码行,然后退出 julia 并放回您开始的 shell(在本例中为 bash)。看来这不是你想做的。使用简单的命令从 shell 运行 julia,然后开始向 julia 发出命令,例如 .julia name_of_file.jljuliaimport Pkg; Pkg.add("Remez")
0赞 Martin Brown 11/16/2023
@Paste 谢谢你的提示。我已经阅读了入门指南。它正在从一个独立的 .jl 玩具可执行文件跳到使用外部库的东西,这让我感到悲伤。您的建议在修复无法为我工作的 Pkg 命令方面非常有帮助,但是在这种新的交互式状态下,我该如何编译和运行主可执行文件?我没有发现我又回到了 bash 中,直到那时 julia sourcefile.jl 作为一个简单的命令工作正常。

答:

0赞 Oscar Smith 11/15/2023 #1

你需要。环境告诉 julia 指定依赖项的文件位于何处。julia --project=.. runtests.jlprojectProject.toml

1赞 Antonello 11/16/2023 #2

在 shell 中,以 .这将引导您进入 Julia 终端,可通过提示识别。juliajulia>

从那里,您可以首先添加所需的 pachage: .import Pkg; Pkg.add("Remez")

这应该在默认环境中安装 Remez 软件包,并且只需要执行一次。 之后,您可以使用包提供的功能导入它并使用它。using Remez

当然,如果你不想在终端上工作,你可以使用像 VSCode 这样的开发编辑器和 Julia 插件(你仍然需要在你的电脑中安装 Julia,但你已经有了)。

评论

0赞 Martin Brown 11/16/2023
非常感谢您的帮助。Remez 现在已经将自己整合到系统中,在外部级别,“julia runtests.jl”现在按预期运行。不过,我仍然对我能做什么和不能从朱莉娅提示做什么感到有些困惑。与其他语言相比,运行时环境感觉有点陌生。标记为已回答。谢谢!
0赞 Antonello 11/17/2023
Julia 提示符实际上看起来与 R 或 Python 提示符非常相似。这个想法是,通过运行来执行分析不太常见,就像使用编译语言一样。相反,你以交互方式“玩”你的代码,但当然,当你完成后,你可以运行......在里面,您将有一些部分,然后是您的代码,这些部分受益于这些包的功能。在 Julia 中使用环境还有另一点,但这是另一个问题。julia myscript.jljulia myscript.jlmyscript.jlusing Package A , Package B, ...