__file__ non esiste in Jupyter Notebook

| | | | | | | | | | | | | | | | | | |

Sono su un server Jupyter Notebook (v4.2.2) con Python 3.4 .2 e voglio usare il nome globale __file__, perché il notebook verrà clonato da altri utenti e in una sezione devo eseguire:

def __init__( self, trainingSamplesFolder="samples", maskFolder="masks"): self.trainingSamplesFolder = self.__getAbsPath(trainingSamplesFolder) self.maskFolder = self.__getAbsPath(maskFolder) def __getAbsPath(self, path): if os.path.isabs( percorso): percorso di ritorno else: ritorno os.path.join(os.path.dirname(__file__), percorso) 

Il __getAbsPath(self, percorso) controlla se un parametro percorso è un percorso relativo o assoluto e restituisce la versione assoluta di percorso. Quindi posso usare il percorso restituito in modo sicuro in seguito.

Ma ricevo l'errore

NameError: name "__file__" non è definito

I Cercato questo errore online e ho trovato la "soluzione" che dovrei usare meglio sys.argv[0], ma print(sys.argv[0]) restituisce

/usr/local/lib/python3.4/dist-packages/ipykernel/__main__.py

Ma la posizione corretta del notebook dovrebbe essere /home/ubuntu/notebooks/.

Grazie per il riferimento Come ottengo il nome attuale del notebook IPython da Martijn Pieters (commenti) l'ultima risposta (non accettata) si adatta perfettamente al mio esigenze:

print(os.getcwd())

/home/ubuntu/notebooks