2016-03-24 22 views
1

Ich erstelle ein Paket in Julia und habe den Abschnitt Package Development der Docs gefolgt.Julia Paketdatendateien und absolute/relative Pfade

Eine meiner Funktionen öffnet und liest eine Datendatei (mydata.txt), die ich im Paketverzeichnis ablege.

Alles funktioniert ziemlich gut, wenn ich die Julia aus dem Paketverzeichnis ausführen, aber nicht so toll, wenn ich die Tests ausführen oder Julia aus einem anderen Verzeichnis ausführen, weil es nicht weiß, wo diese Datendatei zu finden ist.

Ich dachte, ich möchte nur etwas tun könnte:

datapath = Pkg.dir("MyPkg") * "/data/" 

einen absoluten Pfad zur Datei zu erhalten, aber es scheint immer noch nicht zu funktionieren.

Wie kann ein Dateipfad für Daten in einem Paket korrekt angegeben werden?

+2

Auf welchem ​​OS bist du, welche Version von Julia, und wie hat das nicht funktioniert? Normalerweise sollten Sie beim Erstellen eines Verzeichnisses Joinpath anstelle von Verkettung verwenden. –

+0

Mac. Julia 0.4.5. Im Grunde findet nur die Datei nicht. Danke für den "Joinpath" Tipp, ich werde es versuchen. – user12202013

+1

'Joinpfade (Pkg.dir (" MyPkg ")," Daten "," mydata.txt ") sollte funktionieren. –

Antwort

3

Um Multi-Plattform-Verzeichnis Dateien und Pfade richtig zu handhaben, verwenden Julia eingebaute in joinpath Methode:

joinpath(Pkg.dir("MyPkg"), "data", "mydata.txt") 

Der resultierende Pfad in jeder Plattform gültig ist.