Answer a question

I am having trouble installing a module I created in Julia. I am running the Julia plugin under Visual Studio Code. If I run the file below with Ctrl+F5 I get a message

ERROR: LoadError: ArgumentError: Package Utils not found in current path:
- Run `import Pkg; Pkg.add("Utils")` to install the Utils package.

This is the file:

module demo

using Utils

greet() = print("Hello World!")

end # module

If I follow the advice on the error message I get another error message:

ERROR: LoadError: The following package names could not be resolved:
 * Utils (not found in project, manifest or registry)

I also tried inserting this line:

import Pkg; Pkg.add(path="C:/Dropbox/Code/Julia/demo/src/Utils.jl")

and got this message (although the path definitely exists):

ERROR: LoadError: Path `C:/Dropbox/Code/Julia/demo/src/Utils.jl` does not exist.

The files demo.jl and Utils.jl are in C:\Dropbox\Code\Julia\demo\src\ and the demo project has been activated as can be seen in the REPL. The OS is Windows 10 Pro.

Any help will be greatly appreciated. Lots of time wasted trying to make this work.

Answers

Module and packages are not the same things. In short, packages are modules plus a set of metadata that make it easy for the package to be found and interact well with other packages. See here for a tutorial to write Julia packages: https://syl1.gitbook.io/julia-language-a-concise-tutorial/language-core/11-developing-julia-packages

In your case, if you want to load a local module, just type include("fileWhereThereIsTheModule.jl") followed by a using Main.MyModule or using .MyModule. Note the dot... without it, Julia would indeed look for a package and to let it find your Demo or Util module you would have to either change an environmental variable or place your module file in certain predefined folders. Using include followed by the "absolute or relative position" of the module you don't have to do either.

Logo

开发云社区提供前沿行业资讯和优质的学习知识,同时提供优质稳定、价格优惠的云主机、数据库、网络、云储存等云服务产品

更多推荐