On Friday, October 16, 2015 01:07:49 PM David Smith wrote:
> I'm also wondering how to replace 'require' without modifying the
> LOAD_PATH. I can't expect my users to know how to make any path changes.
You can do this:
thisdir = splitdir(@__FILE__)[1]
if !any(LOAD_PATH .== thisdir)
push!(LOAD_PATH, thisdir)
end
Whatever file has this code snippet in it will cause its enclosing folder to be
added to the LOAD_PATH.
You may also be running up against
https://github.com/JuliaLang/julia/issues/9245. Better (but more awkward) than
@everywhere using DCEMRI
would be
for p in workers()
remotecall_fetch(p, eval, :(using DCEMRI))
end
On julia 0.3, that has to be
remotecall_fetch(p, eval, Expr(:using, :DCEMRI))
--Tim
>
> 'using' and 'import' doesn't work for my parallel processes even though I'm
> loading a registered package ("DCEMRI"). I get this error.
>
> WARNING: Module DCEMRI not defined on process 2
> fatal error on 2: ERROR: UndefVarError: DCEMRI not defined
>
>
> I have just a small bit of code in a separate file in the DCEMRI package
> directory that I need each worker to load. What is the preferred way to
> enable this in 0.4?
>
>
> On Thursday, September 17, 2015 at 7:18:54 AM UTC-5, Christopher Fisher
>
> wrote:
> > I am using .4.0-rc1 and have encountered a similar situation and have
> > fairly basic questions about the way .4 loads files. I normally use
> > require
> > to load a file of functions from my working directory in to Julia on a
> > local computer or a cluster of computers. I was hoping someone would be
> > willing to answer a few related questions.
> >
> > First, where can I find the .juliarc.jl file?
> >
> > Second, is there an easier way to load a .jl file from my working
> > directory into Julia onto a local computer or cluster of computers that
> > does not require editing the .juliarc.fil file? (Editing this file for
> > every project seems a little inconvenient).
> >
> > Third, will the code loaded from a .jl always be precompiled in .4? If
> > not, how do I choose whether it is precompiled or not?
> >
> > Thanks in advance (and my apologies for the basic questions;I'm not a
> > programmer per se)
> >
> > Chris
> >
> > On Friday, July 31, 2015 at 7:30:44 AM UTC-4, Tim Holy wrote:
> >> If MyModule.jl is on your LOAD_PATH,
> >>
> >> @everywhere import MyModule
> >>
> >> should work. You can add
> >>
> >> push!(LOAD_PATH,"/my/code/repository")
> >>
> >> to your .juliarc.jl file.
> >>
> >> This has been deprecated because of precompilation; it was felt that the
> >> string version left it too ambiguous about whether you wanted to load the
> >> raw
> >> file or the cached version.
> >>
> >> Best,
> >> --Tim
> >>
> >> On Thursday, July 23, 2015 11:58:58 AM Eduardo Lenz wrote:
> >> > Hi
> >> > I just downloaded the last nightly build and I am receiving a new
> >> > deprecation message:
> >> >
> >> > Warning, "require" is deprecated, use "using" or "import" instead.
> >> >
> >> > My question is: I am using "require" due to the need to automatically
> >> > import these functions for all workers in a cluster. As long as I know,
> >>
> >> to
> >>
> >> > accomplish this task I have to use "require" and also provide the
> >>
> >> correct
> >>
> >> > path of the corresponding .jl files. How can I do this same thing using
> >> > "using" or "import" ? I tried to use it as I was using "require" and it
> >>
> >> is
> >>
> >> > not working as expected.
> >> >
> >> > Thanks for your help and sorry for the dumb question.