如何改造含子包的文件夹结构为可正常导入的Julia包
最佳解决方案
按以下步骤操作即可满足需求,改动最小且完全符合Julia包规范:
- 补全根目录
Project.toml缺失字段
打开PackageName目录下的Project.toml,在文件顶部添加两行内容:
name = "PackageName" uuid = "你生成的UUID值"
UUID可在Julia REPL中执行以下命令生成:
using UUIDs println(uuid4())
- 创建根目录的源代码结构
在PackageName下新建src文件夹,在src内新建PackageName.jl作为根模块文件,写入以下内容:
module PackageName # 导入所有子包的目标模块 using SubPackage.MyModule # 若有多个子包,按同样格式依次导入即可 # using AnotherSubPackage.OtherModule # 重导出需要对外暴露的函数 export myfunction # 其他需要导出的内容可继续添加 # export otherfunction end
- 将子包添加为根包的依赖
打开根目录的Project.toml,在[deps]字段下添加子包的依赖信息:
[deps] SubPackage = "SubPackage的UUID值" # 多个子包依次添加即可
子包的UUID可以从对应子包目录下的Project.toml中直接复制。
- 安装根包到Julia环境
打开Julia REPL,按]进入包管理模式,执行以下命令:
dev /path/to/your/PackageName
将路径替换为你本地PackageName文件夹的绝对路径即可。
操作完成后,你就可以直接执行using PackageName,直接调用myfunction()函数。
内容的提问来源于stack exchange,提问作者Physics_Student
相关产品推荐
相关产品推荐

