# Custom modules usage

**URL:** <https://discourse.julialang.org/t/custom-modules-usage/31702>\
**Category:** New to Julia\
**Tags:** module\
**Created:** [November 30, 2019, 9:54pm UTC](https://discourse.julialang.org/t/custom-modules-usage/31702 "2019-11-30T21:54:02Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![kirtsar](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kirtsar/32/7222_2.png) [@kirtsar](https://discourse.julialang.org/u/kirtsar)\
**Post date:** [November 30, 2019, 9:54pm UTC](https://discourse.julialang.org/t/custom-modules-usage/31702/1 "2019-11-30T21:54:02Z")

</div>

My LOAD\_PATH looks like:

```julia
...
~/progs/dev

```

I have two modules in dev folder. However, I can use `using ` only for one module, and the second one seems “invisible” to Julia for some reasons…

---

<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:** [December 1, 2019, 6:42am UTC](https://discourse.julialang.org/t/custom-modules-usage/31702/2 "2019-12-01T06:42:00Z")

</div>

There is no need to use `LOAD_PATH` any more, just `pkg> dev` the relevant packages in your environment (could be the default one).

[https://julialang.github.io/Pkg.jl/dev/managing-packages/#Developing-packages-1](https://julialang.github.io/Pkg.jl/dev/managing-packages/#Developing-packages-1)

---

<div class="post-metadata">

**Author:** ![venuur](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/venuur/32/6493_2.png) [@venuur](https://discourse.julialang.org/u/venuur)\
**Post date:** [December 1, 2019, 6:51am UTC](https://discourse.julialang.org/t/custom-modules-usage/31702/3 "2019-12-01T06:51:55Z")

</div>

I find `PkgTemplates` makes this super convenient. My latest workflow looks like the following:

```julia
julia> using PkgTemplates
julia> t = Template()
julia> generate("MyNewModule", t)
julia> ] dev MyNewModule

```

Then I can open the modules source and make changes and thanks to `Revise` I can just run `using MyNewModule` and it’s as if everything were all together in the same project except I’m free to keep the modules distinct for commits if they evolve at different paces.
