__file__ não existe no Jupyter Notebook

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

Estou em um servidor Jupyter Notebook (v4.2.2) com Python 3.4 .2 e quero usar o nome global __file__, pois o notebook será clonado de outros usuários e em uma seção tenho que executar:

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

O __getAbsPath(self, path) verifica se um parâmetro path é um caminho relativo ou absoluto e retorna a versão absoluta de path. Assim, posso usar o path retornado com segurança posteriormente.

Mas recebo o erro

NameError: name "__file__" não está definido

I procurou por este erro online e encontrei a "solução" que eu deveria usar melhor sys.argv[0], mas print(sys.argv[0]) retorna

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

Mas o local correto do notebook deve be /home/ubuntu/notebooks/.

Obrigado pela referência Como obtenho o nome atual do IPython Notebook de Martijn Pieters (comentários) a última resposta (não aceita) se encaixa perfeitamente no meu precisa:

print(os.getcwd())

/home/ubuntu/notebooks