개발환경 (12) 썸네일형 리스트형 NotADirectoryError: [Errno 20] Not a directory: './data/.DS_Store' 오류 해결 macos에서 Finder가 색인을 빠르게 하기 위해서 자동으로 .DS_Store 파일을 폴더에 만든다. 폴더 관리할 때 방해가 되기 때문에 삭제하거나 다시 생성이 안되도록 바꿔줄 필요가 있다. 1. 삭제 find . -name "*.DS_Store" -type f -delete 해당 디렉토리에 존재하는 .DS_Store 파일을 전부 삭제한다. 2. 생성이 안되도록 변경 defaults write com.apple.desktopservices DSDontWriteNetworkStores true scp 명령어로 로컬과 원격서버간 파일 전송하기 보통 vscode에서 ssh 접속을 하여 원격서버에서 개발을 진행하는데 로컬과 원격서버 사이에서 파일이나 폴더를 전송해야할 일이 있다. 물론 vscode로 drag & drop을 하는 방법을 사용할 수도 있는데 치명적인 단점이 있다. 1. 이유는 모르겠으나 용량이 크거나 파일 수가 많으면 전송이 안된다. 2. 시간이 너무 오래걸린다. 따라서 보통 scp 명령어를 이용하여 로컬과 서버간에 파일을 전송한다. 파일을 전송하고 전송받는 경우는 크게 3가지이다. 1. 로컬 -> 원격 scp [옵션] [전송할 파일 경로] [user@ip주소:전송받을 경로] 2. 원격 -> 로컬 scp [옵션] [user@ip주소:전송할 경로] [전송 받을 경로] 3. 원격 -> 원격 scp [옵션] [user@ip주소:전송할 경로.. canceled future for execute_request message before replies were done 오류 Vscode를 사용하여 anaconda 가상환경에서 jupyternotebook을 사용하고자 하는데 계속 커널 오류가 뜬다. * 오류는 m1맥북 이후 모델로는 tensorflow-metal을 이용해야 한다는 것이었다. tensorflow-metal은 애플 실리콘 전용 tensorflow이다. 간단한 공부나 실험용이라면 Colab이나 다른 서버를 사용하는 것을 추천하고 local 환경에서 꼭 사용해야 한다면 tensorflow-metal을 사용하는 방법을 찾아보자. vscode를 사용하여 anaconda 가상환경에서 Jupyternotebook 커널 연결하기 1. pip install jupyter jupyter 설치 2. pip install ipykernel 3. 설정 (command or ctrl + ,)에서 Default Interpreter Path 설정 python 검색후에 Default Interpreter Path에 설정되어 있는 경로로 ipykernel이 설치된다. 주의할점은 가상환경을 activate하고 있더라도 ipynb파일을 실행할 때는 이 경로의 커널을 사용하기 때문에 설치된 모듈들이 다를 수 있다. 기본값은 anaconda의 base 경로로 설정되어 있다. 4. python -m ipykernel install --user --name [가상환경이름] --display-name ["커널이름"] 이후에 생성된 커널을 선택한 뒤 실행하면.. Anaconda(아나콘다) 가상환경 생성,삭제, 기본 명령어 가상환경 생성 conda create -n [가상환경이름] python=3.x 가상환경 삭제 conda env remove -n [가상환경이름] 가상환경 목록보기 conda env list 가상환경 설치 목록 보기 conda list 가상환경 활성화 conda activate [가상환경이름] 가상환경 비활성화 conda deactivate [가상환경이름] 리눅스 서버에서 가장 용량 많이 차지하고 있는 디렉토리 확인(df, du) 디스크에 용량이 전부 꽉차 더 이상 저장공간이 남아 있지 않을 때 (이를 확인하기 위해서는 df -h 를 통해 Size와 Used, Avail을 확인한다.) 저장공간을 마련하기 위해 서버에서 가장 용량을 많이 차지하고 있는 디렉토리를 확인하고 싶을 때가 있다. sudo du -h --max-depth=1 [/home] | sort -hr 을 통해 확인할 수 있다. ([/home]에는 기준 directory의위치를 입력한다.) 만약 상위 10개를 확인하고 싶다면 sudo du -h --max-depth=1 [/home] | sort -hr | head 상위 n개를 확인하고 싶다면 sudo du -h --max-depth=1 [home] | sort -hr | head -n 을 통해 확인할 수 있다. * d.. pip install -r requirements.txt로 패키지 관리하기 1. 터미널에서 코드가 있는 디렉토리로 이동 ( cd /~/~/.../) 2. pip freeze > requirements.txt 명령어를 통해 해당 디렉토리에 requirements.txt파일 생성 및 필요한 패키지 작성 3. pip instsall -r requirements.txt를 통해 필요한 패키지 한 번에 다운로드 맥북(macOS)에서 잠자기 기능 끄기 맥북에서 오래동안(자는 시간 동안) 프로그램을 돌려야 할 일이 생긴다. 이럴 때 맥북 기본 설정은 오래동안 아무것도 건드리지 않으면 화면보호기가 켜치고 잠자기에 들어간다. 그래서 오래동안 프로그램을 돌리기 위해서는 잠자기 기능을 수동으로 꺼주어야 한다. 이때, sudo pmset -c disablesleep 1 을 실행해준다. 그리고 sudo pmset -c disablesleep 0 을 누르면 다시 잠자기 기능이 돌아온다. error while attempting to bind on address ('0.0.0.0', 5055): address already in use 해결 포트가 이미 바인딩 되어있어서 프로그램을 실행할 수 없을때 해결하는 방법이다. 1. sudo lsof -i :5055 를 실행 2. PID를 찾는다 3. sudo kill -15 {pid} 실행(정상 종료) sudo kill -9 {pid} 실행 (강제 종료) 정상종료가 안될 시에는 강제종료한다. 이후 명령어를 다시 입력하면 실행이 된다. jupyter notebook에서 자동 괄호(따옴표)생성 설정 끄기 jupyter notebook을 사용하면서 자동 괄호(따옴표)생성, auto brackets(quotes) completion 기능을 끄고싶은 경우가 있다. 다른 ide와 달리 jupyternotebook에서는 코드를 통해 설정을 변경해 주어야한다. from notebook.services.config import ConfigManager c = ConfigManager() c.update('notebook', {"CodeCell": {"cm_config": {"autoCloseBrackets": False}}}) 다음 코드를 실행하면 자동 괄호(따옴표) 생성 기능이 꺼진다. 다시 키고싶다면 False 부분을 True로 바꿔주면 된다. 설정 변경은 코드 실행 후에 새롭게 만들어진 파일부터 적용된다. 이전 1 2 다음