Does working directory change inside of a function?
I am using Julia 1.0.1 with the Juno IDE.
I wrote a module MyModule,
myModule
using Gadfly, DataFrames, Cairo, Fontconfig
function foo(N::Int64)
grid = 1:N
df = DataFrame(x = grid, y = grid .^2)
p = plot(x = "x", y = "y");
draw(PNG("figures/plot.png", 6inch, 3inch), p)
end
end
Let's call the parent directory "Top". I have a file named main.jl
located in Top/Julia
. I also have some auxiliary functions located in Top/Julia/functions
. The script main.jl
consists of the following commands:
using MyModule
include("functions/auxiliaryFunction.jl")
N = 10
foo(10)
When I run this code,
The
include("functions/auxiliaryFunction.jl")
command works perfectly.The file
plot.png
is created inside the directoryTop/figures
instead of inside ofTop/Julia/figures
If I run pwd()
in the REPL, it returns ".../Top"
. So what appears to be happening is that the working directory in the main script is the location of the file itself (or, of the "project" in Juno...kind of confused about that), whereas the working directory of the functions it calls in the modules it imports is the working directory of the REPL. Is this correct or am I missing something? What is the standard solution to this problem - add the working directory as an argument to the function?
Edit 1: If I add
a = pwd()
println("$a")
to the script main.jl
, it returns
.../Top
Edit 2: When main.jl
is open in Atom, the top bar displays "main.jl --- ~/Top"
julia-lang
add a comment |
I am using Julia 1.0.1 with the Juno IDE.
I wrote a module MyModule,
myModule
using Gadfly, DataFrames, Cairo, Fontconfig
function foo(N::Int64)
grid = 1:N
df = DataFrame(x = grid, y = grid .^2)
p = plot(x = "x", y = "y");
draw(PNG("figures/plot.png", 6inch, 3inch), p)
end
end
Let's call the parent directory "Top". I have a file named main.jl
located in Top/Julia
. I also have some auxiliary functions located in Top/Julia/functions
. The script main.jl
consists of the following commands:
using MyModule
include("functions/auxiliaryFunction.jl")
N = 10
foo(10)
When I run this code,
The
include("functions/auxiliaryFunction.jl")
command works perfectly.The file
plot.png
is created inside the directoryTop/figures
instead of inside ofTop/Julia/figures
If I run pwd()
in the REPL, it returns ".../Top"
. So what appears to be happening is that the working directory in the main script is the location of the file itself (or, of the "project" in Juno...kind of confused about that), whereas the working directory of the functions it calls in the modules it imports is the working directory of the REPL. Is this correct or am I missing something? What is the standard solution to this problem - add the working directory as an argument to the function?
Edit 1: If I add
a = pwd()
println("$a")
to the script main.jl
, it returns
.../Top
Edit 2: When main.jl
is open in Atom, the top bar displays "main.jl --- ~/Top"
julia-lang
add a comment |
I am using Julia 1.0.1 with the Juno IDE.
I wrote a module MyModule,
myModule
using Gadfly, DataFrames, Cairo, Fontconfig
function foo(N::Int64)
grid = 1:N
df = DataFrame(x = grid, y = grid .^2)
p = plot(x = "x", y = "y");
draw(PNG("figures/plot.png", 6inch, 3inch), p)
end
end
Let's call the parent directory "Top". I have a file named main.jl
located in Top/Julia
. I also have some auxiliary functions located in Top/Julia/functions
. The script main.jl
consists of the following commands:
using MyModule
include("functions/auxiliaryFunction.jl")
N = 10
foo(10)
When I run this code,
The
include("functions/auxiliaryFunction.jl")
command works perfectly.The file
plot.png
is created inside the directoryTop/figures
instead of inside ofTop/Julia/figures
If I run pwd()
in the REPL, it returns ".../Top"
. So what appears to be happening is that the working directory in the main script is the location of the file itself (or, of the "project" in Juno...kind of confused about that), whereas the working directory of the functions it calls in the modules it imports is the working directory of the REPL. Is this correct or am I missing something? What is the standard solution to this problem - add the working directory as an argument to the function?
Edit 1: If I add
a = pwd()
println("$a")
to the script main.jl
, it returns
.../Top
Edit 2: When main.jl
is open in Atom, the top bar displays "main.jl --- ~/Top"
julia-lang
I am using Julia 1.0.1 with the Juno IDE.
I wrote a module MyModule,
myModule
using Gadfly, DataFrames, Cairo, Fontconfig
function foo(N::Int64)
grid = 1:N
df = DataFrame(x = grid, y = grid .^2)
p = plot(x = "x", y = "y");
draw(PNG("figures/plot.png", 6inch, 3inch), p)
end
end
Let's call the parent directory "Top". I have a file named main.jl
located in Top/Julia
. I also have some auxiliary functions located in Top/Julia/functions
. The script main.jl
consists of the following commands:
using MyModule
include("functions/auxiliaryFunction.jl")
N = 10
foo(10)
When I run this code,
The
include("functions/auxiliaryFunction.jl")
command works perfectly.The file
plot.png
is created inside the directoryTop/figures
instead of inside ofTop/Julia/figures
If I run pwd()
in the REPL, it returns ".../Top"
. So what appears to be happening is that the working directory in the main script is the location of the file itself (or, of the "project" in Juno...kind of confused about that), whereas the working directory of the functions it calls in the modules it imports is the working directory of the REPL. Is this correct or am I missing something? What is the standard solution to this problem - add the working directory as an argument to the function?
Edit 1: If I add
a = pwd()
println("$a")
to the script main.jl
, it returns
.../Top
Edit 2: When main.jl
is open in Atom, the top bar displays "main.jl --- ~/Top"
julia-lang
julia-lang
edited Nov 21 '18 at 20:53
nfernand
asked Nov 20 '18 at 22:55
nfernandnfernand
1151110
1151110
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
I noticed that Atom/Juno IDE can sometimes have some weird effect on the working dir. I think this has to do with the project management. Have you tried closing Juno, and restarting it by opening main.jl
in the (...)/top/Julia
folder? Code seems fine to me.
Tried this, it didn't seem to work. When I openmain.jl
directly with Atom after closing Juno, it looks the same as before I closed it. I do believe this has to do with project management.
– nfernand
Nov 21 '18 at 20:56
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53402827%2fdoes-working-directory-change-inside-of-a-function%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I noticed that Atom/Juno IDE can sometimes have some weird effect on the working dir. I think this has to do with the project management. Have you tried closing Juno, and restarting it by opening main.jl
in the (...)/top/Julia
folder? Code seems fine to me.
Tried this, it didn't seem to work. When I openmain.jl
directly with Atom after closing Juno, it looks the same as before I closed it. I do believe this has to do with project management.
– nfernand
Nov 21 '18 at 20:56
add a comment |
I noticed that Atom/Juno IDE can sometimes have some weird effect on the working dir. I think this has to do with the project management. Have you tried closing Juno, and restarting it by opening main.jl
in the (...)/top/Julia
folder? Code seems fine to me.
Tried this, it didn't seem to work. When I openmain.jl
directly with Atom after closing Juno, it looks the same as before I closed it. I do believe this has to do with project management.
– nfernand
Nov 21 '18 at 20:56
add a comment |
I noticed that Atom/Juno IDE can sometimes have some weird effect on the working dir. I think this has to do with the project management. Have you tried closing Juno, and restarting it by opening main.jl
in the (...)/top/Julia
folder? Code seems fine to me.
I noticed that Atom/Juno IDE can sometimes have some weird effect on the working dir. I think this has to do with the project management. Have you tried closing Juno, and restarting it by opening main.jl
in the (...)/top/Julia
folder? Code seems fine to me.
answered Nov 21 '18 at 8:46
user172056user172056
545
545
Tried this, it didn't seem to work. When I openmain.jl
directly with Atom after closing Juno, it looks the same as before I closed it. I do believe this has to do with project management.
– nfernand
Nov 21 '18 at 20:56
add a comment |
Tried this, it didn't seem to work. When I openmain.jl
directly with Atom after closing Juno, it looks the same as before I closed it. I do believe this has to do with project management.
– nfernand
Nov 21 '18 at 20:56
Tried this, it didn't seem to work. When I open
main.jl
directly with Atom after closing Juno, it looks the same as before I closed it. I do believe this has to do with project management.– nfernand
Nov 21 '18 at 20:56
Tried this, it didn't seem to work. When I open
main.jl
directly with Atom after closing Juno, it looks the same as before I closed it. I do believe this has to do with project management.– nfernand
Nov 21 '18 at 20:56
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53402827%2fdoes-working-directory-change-inside-of-a-function%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown