# Is CSV in Julia 1.12 (kind of) stdlib?

**URL:** <https://discourse.julialang.org/t/is-csv-in-julia-1-12-kind-of-stdlib/134525>\
**Category:** General Usage\
**Tags:** stdlib\
**Created:** [December 12, 2025, 8:31pm UTC](https://discourse.julialang.org/t/is-csv-in-julia-1-12-kind-of-stdlib/134525 "2025-12-12T20:31:05Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)\
**Post date:** [December 12, 2025, 8:31pm UTC](https://discourse.julialang.org/t/is-csv-in-julia-1-12-kind-of-stdlib/134525/1 "2025-12-12T20:31:05Z")

</div>

Calling `using CSV` does **not** result in an error, even in a frish session and though I do not have CSV.jl in my default environment. With v1.10 and v1.11 it errors as expected. I have same, and quite minimal, default environments in all versions.

Why?

---

<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:** [December 12, 2025, 8:46pm UTC](https://discourse.julialang.org/t/is-csv-in-julia-1-12-kind-of-stdlib/134525/2 "2025-12-12T20:46:13Z")

</div>

> [@Eben60](#):
>
> I have same, and quite minimal, default environments in all versions.

I think you need to re-evaluate your v1.12 environment.

```julia-auto
▶ JULIA_DEPOT_PATH=$(mktemp -d) julia +1.12 -q
julia> using CSV
 │ Attempted to find missing packages in package registries but no registries are installed.
 └ Use package mode to install a registry. `pkg> registry add` will install the default registries.

ERROR: ArgumentError: Package CSV not found in current path.
- Run `import Pkg; Pkg.add("CSV")` to install the CSV package.
Stacktrace:
 [1] macro expansion
   @ ./loading.jl:2400 [inlined]
 [2] macro expansion
   @ ./lock.jl:376 [inlined]
 [3] __require(into::Module, mod::Symbol)
   @ Base ./loading.jl:2383
 [4] require(into::Module, mod::Symbol)
   @ Base ./loading.jl:2359
 [5] top-level scope
   @ REPL[1]:1

(@v1.12) pkg> registry add
  Installing known registries into `/var/folders/cb/h4ftb1y11ls5khbqltqswsl40000gn/T/tmp.KeMtt6gpwa`
       Added `General` registry to /var/folders/cb/h4ftb1y11ls5khbqltqswsl40000gn/T/tmp.KeMtt6gpwa/registries

julia> using CSV
 │ Package CSV not found, but a package named CSV is available from a registry.
 │ Install package?
 │ (@v1.12) pkg> add CSV
 └ (y/n/o) [y]:

```

---

<div class="post-metadata">

**Author:** ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)\
**Post date:** [December 12, 2025, 9:03pm UTC](https://discourse.julialang.org/t/is-csv-in-julia-1-12-kind-of-stdlib/134525/3 "2025-12-12T21:03:30Z")

</div>

If I remove/rename the `v1.12` folder, I do get an error on `using CSV`. After renaming it back to `v1.12` (and restarting Julia of course each time) I again can `import CSV`.

Here what I see (in Terminal, Julia freshly started):

```julia-auto
eben60@Mac ~ % julia
ShareAdd, BasicAutoloads & TerminalPager are loaded
               _
   _ _ _(_)_ | Documentation: https://docs.julialang.org
  (_) | (_) (_) |
   _ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` | |
  | | |_| | | | (_| | | Version 1.12.2 (2025-11-20)
 _/ |\ __'_|_|_|\__'_| | Official https://julialang.org release
|__/ |

(@v1.12) pkg> st
Status `~/.julia/environments/v1.12/Project.toml`
  [09cdc199] BasicAutoloads v1.0.4
⌃ [295af30f] Revise v3.8.1 ⚲
  [27c01619] ShareAdd v2.4.0
  [0c614874] TerminalPager v0.6.6
Info Packages marked with ⌃ have new versions available and may be upgradable.

julia> using CSV

julia> 

```

CSV is not in the Manifest of the default environment.

It is not that it is a problem for me, just strange.

---

<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:** [December 12, 2025, 9:20pm UTC](https://discourse.julialang.org/t/is-csv-in-julia-1-12-kind-of-stdlib/134525/4 "2025-12-12T21:20:38Z")

</div>

Do you have anything in your startup? Or a `JULIA_LOAD_PATH`?

---

<div class="post-metadata">

**Author:** ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)\
**Post date:** [December 12, 2025, 9:40pm UTC](https://discourse.julialang.org/t/is-csv-in-julia-1-12-kind-of-stdlib/134525/5 "2025-12-12T21:40:35Z")

</div>

Oh my bad 😁

Surely I have:

```julia-auto
@static if VERSION >= v"1.11" && isinteractive()
	using ShareAdd
	using TerminalPager
    import BasicAutoloads
    BasicAutoloads.register_autoloads([
    	["plot", "scatter"] => :(isdefined(Main, :plot) || @usingany Plots),
    	["DataFrame", "combine", "transform!", "transform", "select!", "select", "groupby"] 
    		=> :(@usingany DataFrames),
    	["CSV"] => :(@usingany CSV, StringEncodings, DataFrames),
    	["Dates", "Date","DateTime"] => :(@usingany Dates),
    	["mean", "std", "median"] => :(isdefined(Main, :mean) || @usingany Statistics), 
    	["@u_str"] => :(@usingany Unitful),  
    	["@benchmark"] => :(@usingany BenchmarkTools), 
    	["TestEnv"] => :(@usingany TestEnv),   	
    ])
    println("ShareAdd, BasicAutoloads & TerminalPager are loaded")
end

```

So the question would actually be not why I have it autoloaded under v1.12, but why it didn’t work as I tested the same thing under v1.11. In the meanwhile I’ve found the issue under v1.11 however.
