如何在 Julia 中重新加载包?
How to reload a package in Julia?
我已经通过 Pkg
安装了 Metalhead.jl
包,我正在使用该安装进行开发。每次我在文件夹中进行更改时,我都会在 VS Code 上打开的 Jupyter Notebook 中测试包的行为。问题是,一旦我有 运行 以下行:
using Metalhead
重新运行它不会再次加载 Metalhead 包。我必须退出 Notebook,再次打开它并 运行 那一行以查看行为的变化。有没有办法在不退出笔记本的情况下重新加载包?
如果您在本地处理包,请确保在开发模式下通过 Pkg
克隆它:
develop --local Metalhead
这将在您当前的项目文件夹中创建一个新文件夹 dev/Metalhead
。您需要使用 julia --project=.
启动 Julia,其中 .
指的是您的项目文件夹。
然后您可以更改您的包,而不是 using
使用 include
加载您的本地开发包:
include("dev/Metalhead/src/Metalhead.jl")
这会给你这样的警告:
WARNING: replacing module Metalhead.
Main.Metalhead
但之后您可以使用 Metalhead 中的所有功能,包括您的新功能,例如:
julia> Metalhead.AlexNet
Main.Metalhead.AlexNet
我通过向 Metalhead 添加一个虚拟函数来测试它,但可能有更优雅的解决方案。
This video about package development is old,但您仍然可以从 Chris 那里得到一些提示,所以我建议您检查一下。
我已经通过 Pkg
安装了 Metalhead.jl
包,我正在使用该安装进行开发。每次我在文件夹中进行更改时,我都会在 VS Code 上打开的 Jupyter Notebook 中测试包的行为。问题是,一旦我有 运行 以下行:
using Metalhead
重新运行它不会再次加载 Metalhead 包。我必须退出 Notebook,再次打开它并 运行 那一行以查看行为的变化。有没有办法在不退出笔记本的情况下重新加载包?
如果您在本地处理包,请确保在开发模式下通过 Pkg
克隆它:
develop --local Metalhead
这将在您当前的项目文件夹中创建一个新文件夹 dev/Metalhead
。您需要使用 julia --project=.
启动 Julia,其中 .
指的是您的项目文件夹。
然后您可以更改您的包,而不是 using
使用 include
加载您的本地开发包:
include("dev/Metalhead/src/Metalhead.jl")
这会给你这样的警告:
WARNING: replacing module Metalhead.
Main.Metalhead
但之后您可以使用 Metalhead 中的所有功能,包括您的新功能,例如:
julia> Metalhead.AlexNet
Main.Metalhead.AlexNet
我通过向 Metalhead 添加一个虚拟函数来测试它,但可能有更优雅的解决方案。
This video about package development is old,但您仍然可以从 Chris 那里得到一些提示,所以我建议您检查一下。