2015-05-04 17 views
6

Quando si utilizza la dichiarazione import, come/dove Nim esegue la ricerca di moduli?Dove Nim cerca i moduli da importare?

So che i percorsi dei file possono essere utilizzati, ma se non voglio usare un percorso file, dove metterei il modulo che ho definito localmente sulla mia macchina?

Non ho ancora usato Nimble e presumo che sia un modo, ma sono più interessato a come sarebbe fatto se il modulo è solo definito localmente.

risposta

8

ricerche Nim per i moduli nei seguenti luoghi:

  1. relativo alla directory del modulo di importazione (tramite import dir.modname o import dir/modname se non è nella stessa directory).
  2. Relativo alla directory del modulo principale (di nuovo, tramite import dir.modname o import dir/modname se non si trova nella stessa directory).
  3. Nelle directory specificate dall'opzione della riga di comando --path o -p.
  4. Nella directory del pacchetto Nimble, che di solito è ~/.nimble/pkgs.
  5. Nella libreria standard.

Il comando nim dump vi mostrerà tutti i percorsi di ricerca del modulo in uso (diversi pacchetti Nimble).

è possibile effettuare le seguenti operazioni per utilizzare i propri moduli:

  1. Far passare la directory che li contiene al compilatore utilizzando l'opzione della riga di comando --path/-p.
  2. Inserire la stessa opzione della riga di comando in uno degli config files. Ce ne sono diversi, il file globale (per le impostazioni dell'intero sistema), il file utente (per le impostazioni per utente), il file di progetto (per le impostazioni del progetto) ei file di configurazione della directory principale (per le directory che sono i genitori della directory del progetto corrente, per le configurazioni condivise da più progetti). Scegli quello con l'ambito di cui hai bisogno.
  3. Utilizzare Nimble per installare un modulo per qualsiasi progetto eseguito dall'utente corrente. Per questo, creare un file libname.nimble (sostituendo libname con il nome effettivo) nella directory e utilizzare nimble install. È quindi possibile importare i file *.nim in quella libreria direttamente da qualsiasi altro progetto. Utilizzare nimble uninstall libname per disinstallare nuovamente la libreria.

Un file di base libname.nimble ha il seguente contenuto.

[Package] 
name = "libname" 
author = "Your Name" 
version = "0.1" 
description = "Example library." 
license = "none" 
+0

Un sacco di ottime informazioni. Grazie. –

2

Che, fondamentalmente, sono due opzioni:

  1. è possibile passare un percorso di ricerca nel comando di compilazione: nim c -p:~/myModulePath.

  2. È possibile aggiungere percorsi di ricerca al numero config/nim.cfg entro il path="$home/myModulePath". Questo file ti dice esattamente come/dove Nim cerca le importazioni di default.

+0

Grazie bluenote10. Molto apprezzato. –

1

Il comando nim dump ti mostrerà cosa c'è nel tuo percorso. Dai un'occhiata alla documentazione dello advanced compiler options.