# How to import a certain module from a package

**URL:** <https://discourse.julialang.org/t/how-to-import-a-certain-module-from-a-package/96963>\
**Category:** General Usage\
**Tags:** question, package, module\
**Created:** [April 2, 2023, 4:50am UTC](https://discourse.julialang.org/t/how-to-import-a-certain-module-from-a-package/96963 "2023-04-02T04:50:02Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![dmtrung14](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dmtrung14/32/45964_2.png) [@dmtrung14](https://discourse.julialang.org/u/dmtrung14)\
**Post date:** [April 2, 2023, 4:50am UTC](https://discourse.julialang.org/t/how-to-import-a-certain-module-from-a-package/96963/1 "2023-04-02T04:50:02Z")

</div>

I was trying to import a module from a package to illustrate,

`using package.ABC: submodule1, submodule2, ... `  
But then when I applied tests to it, it returns:  
`UndefVarError: ABC not defined`.

How do I go about resolving this issue?

Thank you in advance!

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [April 2, 2023, 4:52am UTC](https://discourse.julialang.org/t/how-to-import-a-certain-module-from-a-package/96963/2 "2023-04-02T04:52:35Z")

</div>

Something like this perhaps?

```julia
import package
import package.ABC
using package.ABC: submodule1, submodule2, ...

```

---

<div class="post-metadata">

**Author:** ![dmtrung14](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dmtrung14/32/45964_2.png) [@dmtrung14](https://discourse.julialang.org/u/dmtrung14)\
**Post date:** [April 2, 2023, 5:06am UTC](https://discourse.julialang.org/t/how-to-import-a-certain-module-from-a-package/96963/3 "2023-04-02T05:06:03Z")

</div>

I don’t think it works. The problem with it might be that it is one part of the package that I myself am trying to develop. So the test file is one place and the ABC file is in another place, wherein the submodules1, are located

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [April 2, 2023, 6:48am UTC](https://discourse.julialang.org/t/how-to-import-a-certain-module-from-a-package/96963/4 "2023-04-02T06:48:54Z")

</div>

What step are you stuck on? Did you `include` the files into your package? Is your package on your `LOAD_PATH`? Did you dev your package into your environment? The way modules work here is quite different than the way they work in Python.

---

<div class="post-metadata">

**Author:** ![dmtrung14](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dmtrung14/32/45964_2.png) [@dmtrung14](https://discourse.julialang.org/u/dmtrung14)\
**Post date:** [April 2, 2023, 9:34pm UTC](https://discourse.julialang.org/t/how-to-import-a-certain-module-from-a-package/96963/5 "2023-04-02T21:34:39Z")

</div>

@mkitti Ok, so I noticed that the file is a module from another folder of the same package, so one detour I took, was to `import()` the module.

So explicitly, what I did was:

```julia
import(../src/ABC.jl)
using .ABC : submodule1, submodule2, etc.

```

I wouldn’t claim that this is the most efficient way, and it could possibly be a bad practice to import codes like this. Is it?

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [April 2, 2023, 10:23pm UTC](https://discourse.julialang.org/t/how-to-import-a-certain-module-from-a-package/96963/6 "2023-04-02T22:23:48Z")

</div>

That syntax is weird. I suspect you meant something like this:

```julia
include("../src/ABC.jl")
using .ABC : submodule1, submodule2, etc.

```

However, I’m quite confused about your directory structure. What is the current directory? Did you start julia with `julia --project=.` to load the current directory as the active project environment?

See [Code Loading · The Julia Language](https://docs.julialang.org/en/v1/manual/code-loading/#Package-directories)
