sglyon / ORCA.jl

Julia interface to Plotly's ORCA image exporter app
3 stars 5 forks source link

using ORCA results in "IO error: could not spawn" #24

Closed josephmarturano closed 4 years ago

josephmarturano commented 4 years ago

I am having difficulty saving figures from PlotlyJS.jl and believe my issue may be related to ORCA.jl. I was hoping someone could help.

When I try to save a PlotlyJS.jl figure, as in the following example:

using PlotlyJS
a = rand(30, 3);
p = plot(a)
PlotlyJS.savefig(p, "testfig.png")

I see an error about "using ORCA":

ERROR: Please call `using ORCA` to save figures
Stacktrace:
 [1] error(::String) at .\error.jl:33
 [2] savefig(::PlotlyJS.SyncPlot, ::String) at C:\Users\jmarturano\.julia\packages\PlotlyJS\b9Efu\src\PlotlyJS.jl:57
 [3] top-level scope at REPL[3]:1

So next, if I try using ORCA, I get an IO error:

ERROR: InitError: IOError: could not spawn `C:Usersjmarturano.juliaconda3envs_ORCA_jl_orca_apporca.exe server --port=7982 --graph-only`: no such file or directory (ENOENT)
Stacktrace:
 [1] _spawn_primitive(::String, ::Cmd, ::Array{Any,1}) at .\process.jl:401
 [2] setup_stdios(::getfield(Base, Symbol("##526#527")){Cmd}, ::Array{Any,1}) at .\process.jl:414
 [3] _spawn at .\process.jl:413 [inlined]
 [4] #open#535(::Bool, ::Bool, ::typeof(open), ::Cmd, ::Base.DevNull) at .\process.jl:658
 [5] open at .\process.jl:649 [inlined] (repeats 2 times)
 [6] restart_server() at C:\Users\jmarturano\.julia\packages\ORCA\xULYl\src\ORCA.jl:84
 [7] __init__() at C:\Users\jmarturano\.julia\packages\ORCA\xULYl\src\ORCA.jl:94
 [8] _include_from_serialized(::String, ::Array{Any,1}) at .\loading.jl:685
 [9] _require_search_from_serialized(::Base.PkgId, ::String) at .\loading.jl:765
 [10] _require(::Base.PkgId) at .\loading.jl:990
 [11] require(::Base.PkgId) at .\loading.jl:911
 [12] require(::Module, ::Symbol) at .\loading.jl:906
during initialization of module ORCA

Does anyone know what might be happening or how to fix this error? My system info is:

Julia Version 1.2.0
Commit c6da87ff4b (2019-08-20 00:03 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: Intel(R) Core(TM) i3-4030U CPU @ 1.90GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, haswell)
Environment:
  JULIA_NUM_THREADS = 4
  JULIA_EDITOR = "C:\Users\jmarturano\AppData\Local\Programs\Microsoft VS Code\Code.exe"

and my Pkg.status is:

Pkg.status [0825541b] ANOVA v0.2.0 [`C:\Users\jmarturano\.julia\dev\ANOVA`] [537997a7] AbstractPlotting v0.9.10 [f9309374] ApplicationBuilder v0.4.0 [b19378d9] ArrayFire v1.0.1 [c52e3926] Atom v0.11.3 [67c07d97] Automa v0.8.0 [fbb218c0] BSON v0.2.4 [ba4760a4] BayesNets v3.2.2 [6e4b80f9] BenchmarkTools v0.4.3 [00701ae9] BioAlignments v1.0.0 [37cfa864] BioCore v2.0.5 [7e6ae17a] BioSequences v1.1.0 [a0d4ced5] BioServices v0.3.2 [3c28c6f8] BioSymbols v3.1.0 [fa51a905] BioTools v1.0.0 [ad839575] Blink v0.12.0 [e28b5b4c] Bootstrap v2.1.0 [5f4fecfd] BrowseTables v0.3.0 [336ed68f] CSV v0.5.18 [aaaa29a8] Clustering v0.13.3 [861a8166] Combinatorics v0.7.0 [34da2185] Compat v2.2.0 [8f4d0f93] Conda v1.3.0 [3a865a2d] CuArrays v1.4.4 [5a033b19] CurveFit v0.3.2 [717857b8] DSP v0.6.0 [d58978e5] Dagger v0.8.0 [0fe7c1db] DataArrays v0.7.0 [a93c6f00] DataFrames v0.19.4 [864edb3b] DataStructures v0.17.5 [7806a523] DecisionTree v0.9.1 [ebbdde9d] DiffEqBayes v2.1.1 [0c46a032] DifferentialEquations v6.8.0 [aaf54ef3] DistributedArrays v0.6.4 [31c24e10] Distributions v0.21.8 [a1bb12fb] Electron v1.0.0 [89b67f3b] ExcelFiles v1.0.0 [587475ba] Flux v0.8.3 [da1fdf0e] FreqTables v0.3.1 [38e38edf] GLM v1.1.1 [8d5ece8b] GLMNet v0.4.2 [28b8d3ca] GR v0.42.0 [c91e804a] Gadfly v1.0.1 [9bc6ac9d] GeneticVariation v0.4.0 [c27321d9] Glob v1.2.0 [aa1b3936] GraphIO v0.4.0 [a2cc645c] GraphPlot v0.3.1 [f67ccb44] HDF5 v0.12.5 [6735fb99] Hive v0.3.0 [09f84164] HypothesisTests v0.8.0 [7073ff75] IJulia v1.20.2 [6a3955dd] ImageFiltering v0.6.5 [916415d5] Images v0.18.0 [c601a237] Interact v0.10.3 [b6b21f68] Ipopt v0.6.1 [42fd0dbc] IterativeSolvers v0.8.1 [6042db11] JDBC v0.5.0 [033835bb] JLD2 v0.1.5 [682c06a0] JSON v0.21.0 [4076af6c] JuMP v0.20.1 [a93385a2] JuliaDB v0.13.0 [e5e0dc1b] Juno v0.7.2 [031d7243] Keras v0.0.0 [`C:\Users\jmarturano\.julia\dev\Keras`] [5ab0869b] KernelDensity v0.5.1 [1902f260] Knet v1.3.1 [b4fcebef] Lasso v0.4.0 [093fc24a] LightGraphs v1.3.0 [160ba089] LightGraphsMatching v0.1.0 [4345ca2d] Loess v0.5.0 [2fda8390] LsqFit v0.8.1 [f0e99cf1] MLBase v0.8.0 [da04e1cc] MPI v0.10.1 [ee78f7c6] Makie v0.9.5 [3bd8f0ae] Microbiome v0.4.0 [e1d29d7a] Missings v0.4.3 [ff71e718] MixedModels v1.1.6 [f8716d33] MultipleTesting v0.4.1 [6f286f6a] MultivariateStats v0.7.0 [6ef6ca0d] NMF v0.4.0 [be6f12e9] ODBC v0.8.5 [47be7bcc] ORCA v0.3.0 [a15396b6] OnlineStats v1.0.2 [429524aa] Optim v0.19.4 [9b87118b] PackageCompiler v0.6.4 [eadc2687] Pandas v1.3.0 [46a55296] ParquetFiles v0.2.0 [f0f68f2c] PlotlyJS v0.13.0 [91a5bcdd] Plots v0.27.0 [f27b6e38] Polynomials v0.6.0 [c46f51b8] ProfileView v0.5.0 [438e738f] PyCall v1.91.2 [d330b81b] PyPlot v2.8.2 [612083be] Queryverse v0.3.1 [ce6b1742] RDatasets v0.6.4 [b0e4dd01] RollingFunctions v0.6.2 [c4c386cf] Rsvg v0.2.3 [0aa819cd] SQLite v0.8.2 [3646fa90] ScikitLearn v0.5.1 [d2ef9438] Seaborn v0.4.1 [47aef6b3] SimpleWeightedGraphs v1.1.0 [e3819d11] Spark v0.4.0 [60ddc479] StatPlots v0.9.2 [2913bbd2] StatsBase v0.32.0 [4c63d2b9] StatsFuns v0.9.0 [2cb19f9e] StatsKit v0.3.0 [3eaba693] StatsModels v0.5.0 [f3b207a7] StatsPlots v0.12.0 [8365b1bb] SubstitutionModels v0.4.0 [fd094767] Suppressor v0.1.1 [8a913413] Survival v0.1.0 [`C:\Users\jmarturano\.julia\dev\Survival`] [70df011a] TableReader v0.4.0 [40c74d1a] TableView v0.4.1 [1d978283] TensorFlow v0.11.0 [a2db99b7] TextAnalysis v0.6.0 [9e3dc215] TimeSeries v0.16.1 [0796e94c] Tokenize v0.5.6 [fce5fe82] Turing v0.7.1 [b8865327] UnicodePlots v1.1.0 [0ae4a718] VegaDatasets v1.0.0 [112f6efa] VegaLite v0.7.0 [44d3d7a6] Weave v0.9.1 [0f1e0344] WebIO v0.8.11 [fdbf4ff8] XLSX v0.5.8 [e88e6eb3] Zygote v0.3.4 [8ba89e20] Distributed

Thanks for any thoughts.

sglyon commented 4 years ago

Hmm, looks like something odd happened to the path to the orca executable.

IOError: could not spawn `C:Usersjmarturano.juliaconda3envs_ORCA_jl_orca_apporca.exe 

it seems to be missing the \ characters

Can you check the file in ORCA/deps/paths.jl and see what it says for orca_cmd?

josephmarturano commented 4 years ago

Thanks for the follow-up.

Under .julia/packages/ORCA, I see three folders and each folder has something different for the paths.jl file. The three folders are:

Folder1: qEy7Y
Folder2: xULYI
Folder3: ZfBvW

In folder 1, the orca_cmd path is:

const orca_cmd = "C:\\Users\\jmarturano\\.julia\\conda\\3\\envs\\_ORCA_jl_\\orca_app\\orca.exe"

In folder 2, the orca_cmd path is:

const orca_cmd = `C:\Users\jmarturano\.julia\conda\3\envs\_ORCA_jl_\orca_app\orca.exe`

In folder 3, there is no paths.jl file under ORCA/deps/.

Should there only be one folder? Thanks for any thoughts.

sglyon commented 4 years ago

I believe the different folders have to do with different julia environments.

In the environment that is causing problems for you can you try to update and rebuild the ORCA package?

using Pkg
pkg"up ORCA"
pkg"build ORCA"

and then try again?

josephmarturano commented 4 years ago

Thanks Spencer. Unfortunately updating and building ORCA and then running the same code resulted in the same IOError. But the build process did help me figure this out.

Based on the Pkg.build function, I saw that folder 2 was my active environment. I then modified the orca_cmd path to include double backslashes, i.e., to replicate the path in folder 1 (above). I could then run my test code and save a plot as a .png file.

So I am all set and will close this issue. Thanks very much for your help.

sglyon commented 4 years ago

excellent!