# Can I run \`include("file")\` for a file stored in a loaded package

**URL:** <https://discourse.julialang.org/t/can-i-run-include-file-for-a-file-stored-in-a-loaded-package/125866>\
**Category:** General Usage\
**Created:** [February 13, 2025, 1:44pm UTC](https://discourse.julialang.org/t/can-i-run-include-file-for-a-file-stored-in-a-loaded-package/125866 "2025-02-13T13:44:01Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Torkel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/torkel/32/5030_2.png) [@Torkel](https://discourse.julialang.org/u/Torkel)\
**Post date:** [February 13, 2025, 1:44pm UTC](https://discourse.julialang.org/t/can-i-run-include-file-for-a-file-stored-in-a-loaded-package/125866/1 "2025-02-13T13:44:01Z")

</div>

let’s say I have a package, which in its main directory contain a file “some\_file.jl”. if I run

```julia
using MyPackage

```

is it possible to somehow run

```julia
include("MyPackage.some_file.jl")

```

I.e. run some file contained in the package?

---

<div class="post-metadata">

**Author:** ![JoshuaLampert](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joshualampert/32/205964_2.png) [@JoshuaLampert](https://discourse.julialang.org/u/JoshuaLampert)\
**Post date:** [February 13, 2025, 2:04pm UTC](https://discourse.julialang.org/t/can-i-run-include-file-for-a-file-stored-in-a-loaded-package/125866/2 "2025-02-13T14:04:29Z")

</div>

Something like

```julia
include(pkgdir(MyPackage, "src", "some_file.jl"))

```

should work. See [the docs](https://docs.julialang.org/en/v1/base/base/#Base.pkgdir-Tuple%7BModule%7D).

---

<div class="post-metadata">

**Author:** ![Torkel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/torkel/32/5030_2.png) [@Torkel](https://discourse.julialang.org/u/Torkel)\
**Post date:** [February 13, 2025, 2:16pm UTC](https://discourse.julialang.org/t/can-i-run-include-file-for-a-file-stored-in-a-loaded-package/125866/3 "2025-02-13T14:16:26Z")

</div>

> [@JoshuaLampert](#):
>
> `pkgdir(MyPackage, "src", "some_file.jl")`

That worked, thanks a lot 🙂

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [February 13, 2025, 3:08pm UTC](https://discourse.julialang.org/t/can-i-run-include-file-for-a-file-stored-in-a-loaded-package/125866/4 "2025-02-13T15:08:34Z")

</div>

Note, though, that there are contexts — particularly compiled contexts — where you won’t have access to that directory or file.

This kinda looks like `eval`-laundering to me — there’s lots of guidance about not using `eval`, but that’s effectively what it seems you’re wanting to do here. And it’s effectively what `include` does. You could alternatively parse that file into the module as a const value, and then just have folks explicitly `eval(MyPackage.SOME_FILE)`, where that was just defined in the module as a `const SOME_FILE = parse(read("some_file.jl", String))`.

If I can guess at your root use-case, many packages implement similar functionality with a zero-argument macro.
