Es gab schon einige kurze Antworten, aber ich wollte, wenn möglich, eine vollständigere Antwort geben.
Wenn Sie using MyModule
ausführen, sucht Julia nur in einer Liste der Verzeichnisse, die als LOAD_PATH
bekannt sind.
2-element Array{ByteString,1}:
"/Applications/Julia-0.4.5.app/Contents/Resources/julia/local/share/julia/site/v0.4"
"/Applications/Julia-0.4.5.app/Contents/Resources/julia/share/julia/site/v0.4"
Dies sind die Verzeichnisse, die Julia für Module suchen zu schließen, wenn Sie using Hello
geben: Wenn Sie LOAD_PATH
in der Julia REPL eingeben, werden Sie so etwas wie die folgenden erhalten. In dem Beispiel, das Sie angegeben haben, konnte Julia, da Hello
nicht in Ihrem LOAD_PATH
war, es nicht finden.
Wenn Sie ein lokales Modul einbeziehen möchten, können Sie dessen Position relativ zu Ihrem aktuellen Arbeitsverzeichnis angeben.
julia> include("./src/Hello.jl")
Sobald die Datei aufgenommen wurde, können Sie dann using Hello
als normal laufen alle vom gleichen Verhalten zu bekommen. Für einmalige Skripts ist dies wahrscheinlich die beste Lösung. Wenn Sie jedoch regelmäßig include()
einen bestimmten Satz von Verzeichnissen finden, können Sie sie dauerhaft zu Ihrem LOAD_PATH
hinzufügen.
Hinzufügen von Verzeichnissen LOAD_PATH
manuell hinzufügen Verzeichnisse zu Ihrem LOAD_PATH
kann ein Schmerz, wenn Sie regelmäßig auf bestimmte Module verwenden, die außerhalb der Julia LOAD_PATH
gespeichert sind. In diesem Fall können Sie weitere Verzeichnisse an die Umgebungsvariable LOAD_PATH
anhängen. Julia wird diese Verzeichnisse dann automatisch durchsuchen, wenn Sie den Befehl import
oder using
eingeben.
Eine Möglichkeit, dies zu tun, ist Folgendes zu Ihrem .basrc
, .profile
, .zshrc
hinzuzufügen.
export JULIA_LOAD_PATH="/path/to/module/storage/folder"
Damit wird dieses Verzeichnis an die Standardverzeichnisse angehängt, nach denen Julia suchen wird. Wenn Sie dann
julia> LOAD_PATH
laufen sollte es zurückgeben
3-element Array{ByteString,1}:
"/path/to/module/storage/folder"
"/Applications/Julia-0.4.5.app/Contents/Resources/julia/local/share/julia/site/v0.4"
"/Applications/Julia-0.4.5.app/Contents/Resources/julia/share/julia/site/v0.4"
können Sie jetzt frei using Hello
laufen und Julia wird das Modul automatisch (sofern finden, da es unter /path/to/module/storage/folder
gespeichert.
Weitere Informationen, werfen Sie einen Blick auf this Seite von der Julia Docs.
Was ist die Bedeutung von 'using' dann? Ich dachte, dass diese kw würde das Modul für mich enthalten ... – dopatraman
@doptraman 'using' ist, um die Namen eines Moduls in den aktuellen Bereich einzuführen, während das Modul selbst' include() 'automatisch (außer für die in "LOAD_PATH") –
Wenn Sie Definitionen in einem 'Modul' haben, müssen Sie diese auch exportieren. – m33lky