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.

Reply via email to