module名字提示未定义

怎么解决?TIM截图20200730163155

完整代码贴一下 :sweat_smile:

TIM截图20200731162533
一次只能传一个图片,这是模块源码

TIM截图20200731162655

TIM截图20200731162741

TIM截图20200731162818
两种调用方式都是报MD未定义

julia版本是1.5.0rc1

Julia默认不会从当前目录导入module
你有几种方法可以做:

  1. 在使用using或import前,先include你的module文件
    include("filename.jl")
  1. 或者在using或import前将当前目录加入LOAD_PATH
    push!(LOAD_PATH, ".")
  1. 或者在运行前设置环境变量
    export JULIA_LOAD_PATH=$JULIA_LOAD_PATH:"."

我使用的是using .MD
MD前面有句号,表示的就是当前目录,如果MD前面没有加句号会报错ERROR: LoadError: ArgumentError: Package MD not found in current path:
你的回答不是用来解决我的问题的…

你还是把全部用到的代码一次性贴出来吧,用markdown贴代码的格式,我马上会回你

嗯??

julia> module MD
           export show1
           function show1()
               print("show md.")
           end
       end
Main.MD

julia> import .MD

julia> function demo()
           MD.show1()
       end
demo (generic function with 1 method)

julia> demo()
show md.
julia> 
1 个赞

我不知道1.5是否有什么新的特性能够这样写,但是在1.4下这样不能工作。
使用.MD这样的情况是在include你的module文件后才能工作,后2种方法需要用using/import MD,不加.。

Main.MD
这句是在 module MD end之后添加的吗? 为什么我添加这句还是报MD未定义呢?
仔细看了一遍module相关的文档,没有找到相关的说明

你说的是不是像Python一样,直接从当前目录导入。
但是我没有看到1.5有支持。

push!(LOAD_PATH, “.”)和 import .MD(MD前加句号)
这两种写法效果应该是一样的
好像是Main.MD这句的问题,但是找不到相关的资料说明

push!(LOAD_PATH, “.”)是说把当前目录加入库的搜索路径,之后就可以用using/import MD;
或者在include(“filename.jl”)后,你才能够用using/import .MD。
你确定有哪里的文档写可以直接用import .MD这种方式。


按照你说的,push以后还是不行,还是MD未定义
md.jl mdemo.jl 全小写文件名在同一个目录下

push后要使用using/import MD,不能加dot
如果使用加dot的情况需要include (“filename.jl”)。


import MD 没有句号报这个错误

你的module MD所在的文件名字是MD.jl吗?