首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从路径隐式加载文件

从路径隐式加载文件
EN

Stack Overflow用户
提问于 2017-10-24 17:30:29
回答 1查看 320关注 0票数 0

我正试着用多个模块(在不同的文件中)编程。我不想以正确的顺序显式地加载带有ìnclude的文件。

我使用Atom IDE作为我的开发平台,所以我不会显式地运行julia。

当我只使用importall Datastructures ( ModuleName是模块的名称)时,朱莉娅抱怨道:

代码语言:javascript
复制
LoadError: ArgumentError: Module Datastructures not found in current path.
Run `Pkg.add("Datastructures")` to install the Datastructures package.
while loading F:\dev\ai\Interpreter.jl, in expression starting on line 8
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-24 22:46:22

在julia中有两种构建包或模块的方法:

1)使用PkgDev中的工具。你可以用Pkg.add("PkgDev") ; using PkgDev得到它们。现在,您可以使用PkgDev.generate("MyPackageName", "MIT") (或任何您喜欢的许可)来构建包文件夹。默认情况下,julia将在与其他所有外部包相同的目录中构建此文件夹。在Linux上,这将是~/.julia/v0.6/ (或您正在运行的任何版本)。此外,默认情况下,该文件夹将位于朱莉娅路径上,因此您只需在REPL上键入using MyPackageName来加载它。

注意,julia本质上是通过查找文件~/.julia/v0.6/MyPackageName/src/MyPackageName.jl并运行它来加载包的。如果您的模块由多个文件组成,那么所有这些文件都应该在~/.julia/v0.6/MyPackageName/src/目录中,然后在MyPackageName.jl文件中有一行代码,上面写着include("MyOtherFileOfCode.jl")

2)如果出于某种原因不想将包保存在~/.julia/v0.6/中,或者不想使用PkgDev.generate()构建包,那么当然可以自己设置文件。

让我们假设您希望MyPackageName存储在~/MyCode目录中。首先,创建目录~/MyCode/MyPackageName/。在这个目录中,我强烈建议使用与julia和github相同的结构,即将所有代码存储在一个名为~/MyCode/MyPackageName/src/的目录中。

至少,您将需要这个目录中的一个名为~/MyCode/MyPackageName/src/MyPackageName.jl的文件(就像上面的方法一样)。该文件应以module MyPackageName开头,以end结束。然后,将您想要的任何东西放在中间(如果您愿意的话,包括对src目录中其他文件的src调用)。

最后一步是确保朱莉娅能找到MyPackageName。要做到这一点,您将需要~/MyCode在朱莉娅路径上。要做到这一点,请使用:push!(LOAD_PATH, "~/MyCode")push!(LOAD_PATH, "~/MyCode/MyPackageName")

也许您不想每次访问MyPackageName时都运行这个命令。没问题,您只需要将这一行添加到您的.juliarc.jl文件中,它在每次启动julia时都会自动运行。在Linux上,.juliarc.jl文件应该位于您的主目录中,即~/.juliarc.jl。如果没有,您只需创建它并将任何您想要的代码放入其中。如果你是在另一个操作系统上,你必须谷歌谷歌你的.juliarc.jl放在哪里。

这个答案比我计划的要长..。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46916624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档