노트북이 다른 사용자와 하나에 복제 될 때문에, 파이썬 3.4.2 나는 글로벌 이름 __file__
을 사용하려면 와 Jupyter Notebook 서버 (v4.2.2)에있어 path
PARAM은 상대 또는 절대 경로와 path
의 절대 버전을 반환하는 경우__FILE__은 Jupyter 노트북에 exisit하지 않습니다
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(path):
return path
else:
return os.path.join(os.path.dirname(__file__), path)
__getAbsPath(self, path)
검사 : 섹션 난 실행해야합니다. 그래서 나중에 path
을 안전하게 사용할 수 있습니다.
하지만 내가 온라인이 오류를 검색하고, 내가 더 잘 sys.argv[0]
을 사용한다 "솔루션"하지만 print(sys.argv[0])
반환
/usr/local/lib/python3.4/dist-packages/ipykernel/__main__.py
그러나 올바른 노트북의 위치를 발견
NameError: name
'__file__'
is not defined
오류를 얻을 /home/ubuntu/notebooks/
이어야합니다. 참조 마티 피에 터스에서 How do I get the current IPython Notebook name (댓글) (접수하지 않음) 마지막 답변
덕분에 나의 요구에 완벽하게 맞는 :
print(os.getcwd())
/home/ubuntu/notebooks
'__file__'이 *가 아닌 노트북에 * 모듈과 파이썬 스크립트에 적용됩니다. 발견 한 답변은 여기에 적용되지 않습니다. –
[현재 IPython 노트 이름을 얻는 방법] (http://stackoverflow.com/q/12544056) 더 관련성이있어 보입니까? –