# LoadError: could not spawn \`curl --version\`

**URL:** <https://discourse.julialang.org/t/loaderror-could-not-spawn-curl-version/3367>\
**Category:** General Usage\
**Created:** [April 25, 2017, 7:20am UTC](https://discourse.julialang.org/t/loaderror-could-not-spawn-curl-version/3367 "2017-04-25T07:20:45Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![leiteiro](https://avatars.discourse-cdn.com/v4/letter/l/b5e925/32.png) [@leiteiro](https://discourse.julialang.org/u/leiteiro)\
**Post date:** [April 25, 2017, 7:20am UTC](https://discourse.julialang.org/t/loaderror-could-not-spawn-curl-version/3367/1 "2017-04-25T07:20:45Z")

</div>

Can someone please help me understand this error message?  
On my Sytem (Windows10), any call to ‘PkgDev.publish()’ fails with this error message.

LoadError: could not spawn `curl --version`: no such file or directory (ENOENT)  
while loading C:.…\publish.jl, in expression starting on line 17  
in \_jl\_spawn(::String, ::Array{String,1}, ::Ptr{Void}, ::Base.Process, ::Base.DevNullStream, ::Base.DevNullStream, ::Base.DevNullStream) at process.jl:321  
in #426 at process.jl:478 [inlined]  
in setup\_stdio(::Base.##426#427{Cmd,Ptr{Void},Base.Process}, ::Tuple{Base.DevNullStream,Base.DevNullStream,Base.DevNullStream}) at process.jl:466  
in #spawn#425(::Nullable{Base.ProcessChain}, ::Function, ::Cmd, ::Tuple{Base.DevNullStream,Base.DevNullStream,Base.DevNullStream}, ::Bool, ::Bool) at process.jl:477  
in (::Base.#kw##spawn)(::Array{Any,1}, ::Base.#spawn, ::Cmd, ::Tuple{Base.DevNullStream,Base.DevNullStream,Base.DevNullStream}, ::Bool, ::Bool) at :0  
in curl(::String, ::Cmd) at github.jl:28  
in curl(::String, ::Dict{Any,Any}, ::Cmd) at github.jl:44  
in token(::String) at github.jl:64  
in credentials at github.jl:133 [inlined]  
in push\_url\_and\_credentials(::String) at entry.jl:56  
in (::PkgDev.Entry.##6#11{Dict{String,Array{String,1}}})(::Base.LibGit2.GitRepo) at entry.jl:104  
in with(::PkgDev.Entry.##6#11{Dict{String,Array{String,1}}}, ::Base.LibGit2.GitRepo) at types.jl:701  
in publish(::String, ::String) at entry.jl:97  
in publish() at PkgDev.jl:70  
in include\_string(::String, ::String) at loading.jl:441  
in include\_string(::Module, ::String, ::String) at eval.jl:32  
in (::Atom.##59#62{String,String})() at eval.jl:81  
in withpath(::Atom.##59#62{String,String}, ::String) at utils.jl:30  
in withpath(::Function, ::String) at eval.jl:46  
in macro expansion at eval.jl:79 [inlined]  
in (::Atom.##58#61{Dict{String,Any}})() at task.jl:60

---

<div class="post-metadata">

**Author:** ![Gnimuc](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gnimuc/32/2194_2.png) [@Gnimuc](https://discourse.julialang.org/u/Gnimuc)\
**Post date:** [April 25, 2017, 1:25pm UTC](https://discourse.julialang.org/t/loaderror-could-not-spawn-curl-version/3367/2 "2017-04-25T13:25:03Z")

</div>

Windows10 doesn’t ship `curl`, you should manually install it and add it to `Path`.

---

<div class="post-metadata">

**Author:** ![leiteiro](https://avatars.discourse-cdn.com/v4/letter/l/b5e925/32.png) [@leiteiro](https://discourse.julialang.org/u/leiteiro)\
**Post date:** [April 25, 2017, 3:39pm UTC](https://discourse.julialang.org/t/loaderror-could-not-spawn-curl-version/3367/3 "2017-04-25T15:39:07Z")

</div>

```
"Windows10 doesn't ship curl, you should manually install it and add it to Path."

```

Thanks. I am using JuliaPro (v0.5.1.1\_build-43) and made the apparently wrong assumption that in the distribution for Windows such tools are already integrated. After all the ‘publish()’ command is a basic one.

> [@ANN: The JuliaPro distribution by Julia Computing](https://discourse.julialang.org/t/ann-the-juliapro-distribution-by-julia-computing/1736):
>
> Hello everyone, I want to make a quick announcement about the JuliaPro distribution that we at Julia Computing have put together and made available for download. The developer edition is free, and we also have an enterprise edition with paid support. It has taken us a long time to put together a distribution including Julia, Juno, and a variety of precompiled packages in one single download. We want to make Julia much easier for new users of Julia, and this is one small step in that direction. …

---

<div class="post-metadata">

**Author:** ![evanfields](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/evanfields/32/1744_2.png) [@evanfields](https://discourse.julialang.org/u/evanfields)\
**Post date:** [April 25, 2017, 4:42pm UTC](https://discourse.julialang.org/t/loaderror-could-not-spawn-curl-version/3367/4 "2017-04-25T16:42:49Z")

</div>

I can’t speak about JuliaPro - never used it - but with ‘regular’ Julia on Windows it does matter what terminal you launch from. If I launch from the regular Windows command line and type `;curl` I get that error. If I launch from git bash (which has some tools built in) and type `;curl` I get `curl: try 'curl --help' or 'curl --manual' for more information`.

---

<div class="post-metadata">

**Author:** ![bramtayl](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bramtayl/32/3614_2.png) [@bramtayl](https://discourse.julialang.org/u/bramtayl)\
**Post date:** [April 25, 2017, 5:02pm UTC](https://discourse.julialang.org/t/loaderror-could-not-spawn-curl-version/3367/5 "2017-04-25T17:02:09Z")

</div>

It might be worth looking into native Julia alternatives to curl: HTTP.jl for example

---

<div class="post-metadata">

**Author:** ![anon67531922](https://avatars.discourse-cdn.com/v4/letter/a/48db29/32.png) [@anon67531922](https://discourse.julialang.org/u/anon67531922)\
**Post date:** [January 14, 2018, 11:09am UTC](https://discourse.julialang.org/t/loaderror-could-not-spawn-curl-version/3367/6 "2018-01-14T11:09:47Z")

</div>

It is kind of funny I found this post because some tests on HTTP.jl are failing on WIndows because it can’t find `curl` 😃

Any idea how to get AppVeyor tests to pass if the tests depends on `curl`? Tests are passing on Travis now so I’m trying to get AppVeyor to pass as well. Thanks!

---

<div class="post-metadata">

**Author:** ![leiteiro](https://avatars.discourse-cdn.com/v4/letter/l/b5e925/32.png) [@leiteiro](https://discourse.julialang.org/u/leiteiro)\
**Post date:** [January 14, 2018, 11:32am UTC](https://discourse.julialang.org/t/loaderror-could-not-spawn-curl-version/3367/7 "2018-01-14T11:32:57Z")

</div>

It might be helpful if you show us the tests (reduced to some minimal form) which fail.

---

<div class="post-metadata">

**Author:** ![anon67531922](https://avatars.discourse-cdn.com/v4/letter/a/48db29/32.png) [@anon67531922](https://discourse.julialang.org/u/anon67531922)\
**Post date:** [January 14, 2018, 11:54am UTC](https://discourse.julialang.org/t/loaderror-could-not-spawn-curl-version/3367/8 "2018-01-14T11:54:55Z")

</div>

Thanks @leiteiro. I think I got it. Trying now 🙏. I think I can install `curl` using WinRPM. Will report back 😊

---

<div class="post-metadata">

**Author:** ![lobingera](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lobingera/32/211_2.png) [@lobingera](https://discourse.julialang.org/u/lobingera)\
**Post date:** [January 14, 2018, 12:55pm UTC](https://discourse.julialang.org/t/loaderror-could-not-spawn-curl-version/3367/9 "2018-01-14T12:55:33Z")

</div>

btw; [Build Environment | AppVeyor](https://www.appveyor.com/docs/build-environment/#build-worker-images) lists curl as pre-installed

---

<div class="post-metadata">

**Author:** ![anon67531922](https://avatars.discourse-cdn.com/v4/letter/a/48db29/32.png) [@anon67531922](https://discourse.julialang.org/u/anon67531922)\
**Post date:** [January 14, 2018, 2:16pm UTC](https://discourse.julialang.org/t/loaderror-could-not-spawn-curl-version/3367/10 "2018-01-14T14:16:11Z")

</div>

The test launches a server on a random port, in this case 8661, runs the below command:

```julia
run(`bash -c 'curl -v -s http://127.0.0.1:8661/ > tmpout 2>&1'`)

```

It errors with the following message:

```julia
  Got an exception of type Base.UVError outside of a @test
  could not spawn `bash -c 'curl -v -s http://127.0.0.1:8200/ > tmpout 2>&1'`: no such file or directory (ENOENT)

```

I thought it was `curl`, but now I think the problem is the `bash` statement. It doesn’t work on Windows. Any idea?

---

<div class="post-metadata">

**Author:** ![lobingera](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lobingera/32/211_2.png) [@lobingera](https://discourse.julialang.org/u/lobingera)\
**Post date:** [January 14, 2018, 2:40pm UTC](https://discourse.julialang.org/t/loaderror-could-not-spawn-curl-version/3367/11 "2018-01-14T14:40:08Z")

</div>

It might make sense to read a little bit into appveyor doc and forums [Support | AppVeyor](https://www.appveyor.com/support/#forums-and-support-tickets)  
as i have the feeling you are not the only one to test with a local server (you might be one of the few to use julia).
