__file__ no existe en Jupyter Notebook

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

Estoy en un servidor Jupyter Notebook (v4.2.2) con Python 3.4 .2 y quiero usar el nombre global __file__, porque el cuaderno será clonado de otros usuarios y en una sección tengo que ejecutar:

def __init__( self, trainingSamplesFolder="muestras", maskFolder="máscaras"): self.trainingSamplesFolder = self.__getAbsPath(trainingSamplesFolder) self.maskFolder = self.__getAbsPath(maskFolder) def __getAbsPath(self, path): if os.path.isabs( ruta): return ruta else: return os.path.join(os.path.dirname(__file__), ruta) 

El __getAbsPath(self, ruta) comprueba si un parámetro path es una ruta relativa o absoluta y devuelve la versión absoluta de path. Así puedo usar la path devuelta de forma segura más adelante.

Pero me sale el error

NameError: el nombre "__file__" no está definido

I buscado para este error en línea y encontré la "solución" que debería usar mejor sys.argv[0], pero print(sys.argv[0]) regresa

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

Pero la ubicación correcta del cuaderno debería ser /home/ubuntu/notebooks/.

Gracias por la referencia ¿Cómo obtengo el nombre actual de IPython Notebook de Martijn Pieters (comentarios) la última respuesta (no aceptada) se ajusta perfectamente a mi necesita:

print(os.getcwd())

/home/ubuntu/notebooks