# Importing module in same file

**URL:** <https://discourse.julialang.org/t/importing-module-in-same-file/21724>\
**Category:** General Usage\
**Tags:** question\
**Created:** [March 11, 2019, 5:12am UTC](https://discourse.julialang.org/t/importing-module-in-same-file/21724 "2019-03-11T05:12:27Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![yash](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yash/32/8353_2.png) [@yash](https://discourse.julialang.org/u/yash)\
**Post date:** [March 11, 2019, 5:12am UTC](https://discourse.julialang.org/t/importing-module-in-same-file/21724/1 "2019-03-11T05:12:27Z")

</div>

How can I import a module in another module in same file in julia ??

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [March 11, 2019, 6:28am UTC](https://discourse.julialang.org/t/importing-module-in-same-file/21724/2 "2019-03-11T06:28:55Z")

</div>

Please kindly read the [documentation](https://docs.julialang.org/en/v1/manual/modules/#Relative-and-absolute-module-paths-1).

---

<div class="post-metadata">

**Author:** ![yash](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yash/32/8353_2.png) [@yash](https://discourse.julialang.org/u/yash)\
**Post date:** [March 11, 2019, 6:53am UTC](https://discourse.julialang.org/t/importing-module-in-same-file/21724/3 "2019-03-11T06:53:47Z")

</div>

I actually read.  
But I wanted to know that , is there a way to import module a in moduleb without using **include**.

 ![Capture2](https://global.discourse-cdn.com/julialang/original/3X/1/7/17a7208a211e3c631fc06cf1a0366a228efad447.png)

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [March 11, 2019, 7:56am UTC](https://discourse.julialang.org/t/importing-module-in-same-file/21724/4 "2019-03-11T07:56:16Z")

</div>

The very first example in the section I linked is about this.

Also, please post [quoted code](https://discourse.julialang.org/t/psa-how-to-quote-code-with-backticks/7530).

---

<div class="post-metadata">

**Author:** ![yash](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yash/32/8353_2.png) [@yash](https://discourse.julialang.org/u/yash)\
**Post date:** [March 11, 2019, 8:23am UTC](https://discourse.julialang.org/t/importing-module-in-same-file/21724/5 "2019-03-11T08:23:26Z")

</div>

In that example `module Parent` contains `module Utils` so we can use `using` for importing `Utils` directly . But In my example `module b` does not contain `module a` but are in same file `new.jl` so if I use `using .a` it does not work.

---

<div class="post-metadata">

**Author:** ![anon67531922](https://avatars.discourse-cdn.com/v4/letter/a/48db29/32.png) [@anon67531922](https://discourse.julialang.org/u/anon67531922)\
**Post date:** [March 11, 2019, 8:55am UTC](https://discourse.julialang.org/t/importing-module-in-same-file/21724/6 "2019-03-11T08:55:59Z")

</div>

Why not just wrap both modules in a module? A .jl file usually contains one module, but that module can have multiple submodules.

PS: Module names are usually uppercase.

---

<div class="post-metadata">

**Author:** ![yash](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yash/32/8353_2.png) [@yash](https://discourse.julialang.org/u/yash)\
**Post date:** [March 11, 2019, 9:13am UTC](https://discourse.julialang.org/t/importing-module-in-same-file/21724/7 "2019-03-11T09:13:57Z")

</div>

@anon67531922 are you asking to make a new `module`(say C) which contains both the module or nesting `module A` inside `module B` (like in example given in documentation)???

---

<div class="post-metadata">

**Author:** ![anon67531922](https://avatars.discourse-cdn.com/v4/letter/a/48db29/32.png) [@anon67531922](https://discourse.julialang.org/u/anon67531922)\
**Post date:** [March 11, 2019, 9:21am UTC](https://discourse.julialang.org/t/importing-module-in-same-file/21724/8 "2019-03-11T09:21:30Z")

</div>

Either way would be fine. It is up to you 🙂

From your question, it seems you don’t want them nested so you could do something like:

```julia
module C

module A
end

module B
using ..A
end

end

```

---

<div class="post-metadata">

**Author:** ![yash](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yash/32/8353_2.png) [@yash](https://discourse.julialang.org/u/yash)\
**Post date:** [March 11, 2019, 10:19am UTC](https://discourse.julialang.org/t/importing-module-in-same-file/21724/9 "2019-03-11T10:19:59Z")

</div>

Thanks a lot @anon67531922 , It worked perfect.😀

---

<div class="post-metadata">

**Author:** ![bcon](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bcon/32/23495_2.png) [@bcon](https://discourse.julialang.org/u/bcon)\
**Post date:** [May 25, 2021, 1:40am UTC](https://discourse.julialang.org/t/importing-module-in-same-file/21724/10 "2021-05-25T01:40:16Z")

</div>

This should really be expanded to explicitly handle multiple files:

```julia
#lemon.jl
module Lemon
  squeeze()
end

```

```julia
#lime.jl
include("lemon.jl")
module Lime
  import ..Lemon
  function test()
    Lemon.squeeze()
  end
end

```

To reiterate: include(“lemon.jl”) appends the contents of lemon.jl to the current namespace (lime.jl), resulting in

```julia
#lime.jl
module Lime
  import ..Lemon
  function test()
    Lemon.squeeze()
  end
end

module Lemon
  squeeze()
end

```

With lemon included, you should use the relative import (import …Lemon) as mentioned in the documentation.
