2014-03-25 4 views
10

Da in http://julia.readthedocs.org/en/latest/manual/modules/ gibt es nicht viele Informationen über Module, möchte ich folgendes fragen.Importieren Sie ein Modul und verwenden Sie es in julialang

Ich möchte zwei Module über Ijulia versuchen. Beide Module sind in meinem Arbeitsverzeichnis als name-of-files.jul. Ich werde sie generisch module_1.jul und module_2.jul nennen.

module_1.jul verwendet module_2.jul und ich es laden mit

using module_2 

Auf ijulia Sitzung, wenn ich

versuchen
using module_1 

einen Fehler gibt. Ich habe auch versucht

include("module_1.jul") 

Dieser letzte Satz, wenn sie ausgeführt werden, erhebt sich ein Fehler, weil die module_1.jul nicht Variable „x“ finden können, die ich kenne, ist in module_1.jul enthalten (in diesem Fall I „geladen“ der Modul include („module2.jul“) unter Verwendung von innen module_1.jul

+1

Es gibt ein bisschen mehr Informationen in der [Julia Wikibook] (http://en.wikibooks.org/wiki/Introducing_Julia/Modules_and_packages) – facuq

Antwort

10

Julias Modulsystem übernimmt einige Dinge, die auf den ersten.

nicht unbedingt offensichtlich aus der Dokumenation sind
  1. Julia Dateien mit .jl enden soll Erweiterungen
  2. Julia sucht nach Moduldateien in Verzeichnissen, die in der Variablen LOAD_PATH definiert sind. Ich vermute, es ist, weil es Quelldateien eine der oben genannten Kriterien
  3. Julia sucht nach Dateien in diesen Verzeichnissen in Form Module/src/file.jl

Wenn using module_1 versagt, dann scheitern.

+0

Aber mit Blick auf die Variable LOAD_PATH Ich denke, es wäre ein Nachteil, nicht? Irgendwie würde ich gerne ein julia-Programm wie einen Fortran- oder sogar Python-Code sehen, wo man die Module kompiliert und dann das Hauptprogramm ausführt, ohne jedoch Module aus anderen Programmen hinzuzufügen (wie ich vermute, macht die Variable LOAD_PATH). – user2820579

+3

Ich glaube nicht, dass ich deine Frage verstehe. LOAD_PATH ist nur eine Variable, die Julia sagt, wo sie hinschauen soll. Nichts wird geladen, bis Sie import, include oder using eingeben. Es ist wie Ihre Terminal-PATH-Variable. Durch das Hinzufügen wird nichts geladen. –

+1

Aber nehmen wir an, ich bin sehr enthusiastisch und ich habe eine Million Module auf der Variablen LOAD_PATH geladen und nehme an, dass ich auch Module mit demselben Namen, verschiedenen Inhalten, auf verschiedenen Pfaden gespeichert haben könnte. Wie verlinke ich richtig, welches ist das, das ich verwenden möchte, wenn, wie ich vermute, der LOAD_PATH von links nach rechts gesucht wird? – user2820579

Verwandte Themen