# Remove package from environment in Julia

**URL:** <https://discourse.julialang.org/t/remove-package-from-environment-in-julia/79435>\
**Category:** New to Julia\
**Created:** [April 13, 2022, 1:08pm UTC](https://discourse.julialang.org/t/remove-package-from-environment-in-julia/79435 "2022-04-13T13:08:05Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Luigi\_Marongiu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/luigi_marongiu/32/7909_2.png) [@Luigi\_Marongiu](https://discourse.julialang.org/u/Luigi_Marongiu)\
**Post date:** [April 13, 2022, 1:08pm UTC](https://discourse.julialang.org/t/remove-package-from-environment-in-julia/79435/1 "2022-04-13T13:08:05Z")

</div>

Hello,  
I am loading packages in the environment with `using LIBRARY`. Is there a way to remove that package from the environment? something like R’s `detach`? Thanks

---

<div class="post-metadata">

**Author:** ![photor](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/photor/32/14343_2.png) [@photor](https://discourse.julialang.org/u/photor)\
**Post date:** [April 13, 2022, 1:30pm UTC](https://discourse.julialang.org/t/remove-package-from-environment-in-julia/79435/2 "2022-04-13T13:30:58Z")

</div>

AFAIK, no.

---

<div class="post-metadata">

**Author:** ![Luigi\_Marongiu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/luigi_marongiu/32/7909_2.png) [@Luigi\_Marongiu](https://discourse.julialang.org/u/Luigi_Marongiu)\
**Post date:** [April 13, 2022, 1:31pm UTC](https://discourse.julialang.org/t/remove-package-from-environment-in-julia/79435/3 "2022-04-13T13:31:45Z")

</div>

pity… but fair enough. Thanks

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [April 13, 2022, 1:46pm UTC](https://discourse.julialang.org/t/remove-package-from-environment-in-julia/79435/4 "2022-04-13T13:46:35Z")

</div>

May be I am not following, but a package may be removed from an environment by `]rm PACKAGE`.

---

<div class="post-metadata">

**Author:** ![Christopher\_Fisher](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/christopher_fisher/32/26132_2.png) [@Christopher\_Fisher](https://discourse.julialang.org/u/Christopher_Fisher)\
**Post date:** [April 13, 2022, 1:59pm UTC](https://discourse.julialang.org/t/remove-package-from-environment-in-julia/79435/5 "2022-04-13T13:59:29Z")

</div>

Based on the descriptions of detach, I think environment refers to the workspace containing loaded variables and functions. In that case, the answer is no. Unfortunately, you would have to start a new Julia session. Is there a reason that you need to remove the package from the workspace?

---

<div class="post-metadata">

**Author:** ![jishnub](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jishnub/32/33620_2.png) [@jishnub](https://discourse.julialang.org/u/jishnub)\
**Post date:** [April 13, 2022, 2:41pm UTC](https://discourse.julialang.org/t/remove-package-from-environment-in-julia/79435/6 "2022-04-13T14:41:49Z")

</div>

Probably to get rid of exported symbols? Or maybe a package carries out piracy, and you don’t want to lose all your work just because you loaded a package mistakenly.

---

<div class="post-metadata">

**Author:** ![Luigi\_Marongiu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/luigi_marongiu/32/7909_2.png) [@Luigi\_Marongiu](https://discourse.julialang.org/u/Luigi_Marongiu)\
**Post date:** [April 13, 2022, 5:24pm UTC](https://discourse.julialang.org/t/remove-package-from-environment-in-julia/79435/7 "2022-04-13T17:24:58Z")

</div>

sometimes packages have the same function’s names. Specifically I had `optim` ​ in both Optim and Statistics. Can I solve with `]rm Statistics`?

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [April 13, 2022, 5:36pm UTC](https://discourse.julialang.org/t/remove-package-from-environment-in-julia/79435/8 "2022-04-13T17:36:28Z")

</div>

why do you need to “solve” anything? just use

```julia
Optim.optim

Statistics.optim

```

---

<div class="post-metadata">

**Author:** ![tbeason](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tbeason/32/15898_2.png) [@tbeason](https://discourse.julialang.org/u/tbeason)\
**Post date:** [April 13, 2022, 6:11pm UTC](https://discourse.julialang.org/t/remove-package-from-environment-in-julia/79435/9 "2022-04-13T18:11:07Z")

</div>

I believe you that you ran into a namespace collision because that happens, but I think your problem must be bigger than this if that was your specific problem because

```julia
help?> Statistics.optim
  No documentation found.

  Binding Statistics.optim does not exist.

```

---

<div class="post-metadata">

**Author:** ![Luigi\_Marongiu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/luigi_marongiu/32/7909_2.png) [@Luigi\_Marongiu](https://discourse.julialang.org/u/Luigi_Marongiu)\
**Post date:** [April 13, 2022, 7:09pm UTC](https://discourse.julialang.org/t/remove-package-from-environment-in-julia/79435/10 "2022-04-13T19:09:24Z")

</div>

```julia
Optim.optim
Statistics.optim

```

That is exactly what I wanted to avoid… @tbeason Thanks, I thought that was the problem, I’ll check it out. Still, for general knowledge, if there is a way to import and deport a package it might be good for other occasions. Thanks

---

<div class="post-metadata">

**Author:** ![jacobusmmsmit](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jacobusmmsmit/32/217669_2.png) [@jacobusmmsmit](https://discourse.julialang.org/u/jacobusmmsmit)\
**Post date:** [April 13, 2022, 9:03pm UTC](https://discourse.julialang.org/t/remove-package-from-environment-in-julia/79435/11 "2022-04-13T21:03:09Z")

</div>

Perhaps you may want to import only the functions that you will be using:

```julia
using MyPackage: function1, function2

```

I’m not sure if this will work for you here as I’m not sure if `using` brings the whole package into the current environment and therefore `using X: f1` will bring the required auxiliary functions along with it in order to make `f1` work.

I must say, however, that explicit namespace uses such as `Optim.optim` is not something you should be avoiding. Even in R, you can use double colon `::` to do the same as there are some packages that re-export the same function names. Overall it adds to clarity of your code as you know exactly which version of a function is being called.

---

<div class="post-metadata">

**Author:** ![Luigi\_Marongiu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/luigi_marongiu/32/7909_2.png) [@Luigi\_Marongiu](https://discourse.julialang.org/u/Luigi_Marongiu)\
**Post date:** [April 14, 2022, 5:19am UTC](https://discourse.julialang.org/t/remove-package-from-environment-in-julia/79435/12 "2022-04-14T05:19:50Z")

</div>

Ok, that makes sense. Thank you.
