본문 바로가기

취미코딩/python

(8)
koNLPy 설치할 때 난관들 자연어 분석을 위해 koNLPy를 설치할 때 제대로 실행되지 않을 때가 많다. 내가 겪은 오류를 바탕으로 정리해봤다. java.nio.file.InvalidPathException: Illegal char at index... 가장 자주 겪은 오류인데, koNLPy는 자바를 사용하는데, 파이썬에서 자바를 쓸 수 있게 해주는 JPype의 버전 오류다. JPype는 구글링을 해보면 여기로 들어가서 자신에게 맞는 버전을 받으라고 안내하는 글이 많다. 파일을 받아서 pip로 파일을 설치하면 된다. 다만 이게 끝이 아니다. 보통 자신의 python 버전을 고려해서 받기만 하면 된다고 하는데, python 3.8의 경우 JPype는 1.3.0, 1.2.0, 1.1.2 등이 모두 3.8을 지원한다. 그런데 내 경우에..
for 안에서 list.pop()을 쓰면 안되는 이유 pop은 아래처럼 쓴다. >>> a = [1, 2, 3, 4, 5] >>> a.pop() 5 >>> a [1, 2, 3, 4] >>> a.pop(0) 1 >>> a [2, 3, 4] 그러니까 리스트에서 인자값 없이 pop()을 호출하면 마지막 요소를 꺼낸다. 인자값으로 인덱스를 넣으면 해당 인덱스의 값을 꺼낸다. 꺼낸 값은 다른 변수에 할당해도 되고, 리스트 자체는 바로 바뀐다. 그럼 아래 예의 결과는 어떻게 될까. a = [1,2,3,4,5] for i, v in enumerate(a): if v < 5: a.pop(i) enumerate()는 리스트의 인덱스를 함께 반환한다. 위에서 i가 인덱스넘버, v가 값이다. 5보다 작으면 해당 인덱스를 pop하라고 하니, 결과는 [5]일 것이다. 실제로 해보라..
텐서플로(tensorflow) GPU 사용하기 2021.10.29 블로그에서 검색 유입량이 제일 많은 글이었는데, 반년만에 아나콘다와 텐서플로 GPU를 재설치하려다보니 틀린 부분이 너무 많아서 찔려서 전면 재수정함. 책이나 웹 문서를 봐도 텐서플로 GPU 사용 방법을 제대로 설명하지 않아서 세팅할 때 헛갈리는 편이다. 코랩 말고 게임에나 쓰는 그래픽 카드를 다른 방식으로 사용해보고 싶은 사람들을 위해 정리. 1. 아나콘다 아나콘다는 가상환경을 만들 때 파이썬 버전을 지정할 수 있다. 특히 한국어 자연어 분석을 위해 koNLPy 등을 설치할 때 파이썬 3.9에서는 잘 되지 않는다. 아나콘다 공홈에서 무료 버전인 Individual Edition 설치파일을 내려받아 실행한다. 설치후 시작 프로그램에서 anaconda prompt나 anaconda pow..
아나콘다(Anaconda)를 VS Code에서 쓰기 머신러닝, 딥러닝 등의 개념을 배우고 싶어서 입문 책을 샀다. 입문 책은 구글의 colab을 이용하도록 안내해서 별도의 환경 세팅을 설명하진 않는다. 그런데 하다보면 코랩이 약간 느리고(아예 자동 완성이 뜨질 않으면 모르겠는데 느리게 뜨는 현상 등), 로컬에서 실행하는 게 조금이라도 실행 속도가 빨라서 아나콘다를 설치했다. PyCharm에서 해보는 것도 좋을 것 같은데, 설치할 아나콘다는 유료 버전을 쓰도록 권장한다. 결제할 마음은 없으니 커뮤니티 에디션 대신 익숙한 VS Code로 진행했다. 아나콘다 공홈에서 설치 파일을 받아 실행한다. choco로 설치도 가능하지만, 공홈 안내는 설치파일만 적혀 있으니 추천하지 않는다. 아나콘다는 거대한 프로젝트이지만 설치 후 추가로 건드릴 필요는 없다. Anacon..
파이썬으로 유튜브 고화질 영상 다운로드 하기 서론부터. 유튜브 영상을 다운로드 하는 것이 규정 위반인지 의문이 있다. 얼마 전 Github에서 유튜브 다운로드 프로그램 하나가 삭제됐다가 복구됐다는 소식이 있었는데, 다운로드 행위 혹은 다운로드 방법에 대한 이야기 자체가 부적절하지는 않은 것 같다. 사실 유튜브 영상을 다운로드 받을 일이 얼마나 있나 싶다. 이미 경고하면 유튜브 영상 다운로드를 남용하면 차단당할 수 있다. 꼭 내려받아야 하는 영상이 생길 경우를 대비해 알아두는 정도가 좋지 않을까. 브라우저 확장으로 다운로드 할 때 크롬 혹은 크롬 앱스토어를 통해 비디오 다운로드 확장을 설치하면 유튜브는 서비스 제공을 하지 않는 것 같다. 하는 앱이 있는지 모르겠으나, 얼마 전 앱스토어에서 예전에 설치하고 비활성화한 다운로드 앱 하나에 멀웨어가 있다는..
VS Code에서 anaconda 환경 설정할 때 유의점 Anaconda를 처음 설치하고 VS Code에서 쓸 때 어처구니 없는 일을 겪었다. VS Code안에서 Jupyter Notebook를 띄우려 하는데, ipykernel을 찾지 못하겠다는 에러 메시지가 죽어도 사라지지 않았다. 심지어 (인스톨이 되어 있었음에도) 인스톨을 눌러도 에러 메시지가 나왔다. 내가 생성한 아나콘다 가상 환경에서만 그렇고, 기본 설치된 base 환경에는 제대로 진행이 되서, 설치 문제인줄 알고 가상환경 재생성만 5번은 한 것 같다. 몇 번의 삽질 끝에 파이썬 익스텐선 환경 설정에 condapath를 지정하면 해당 에러가 난다는 걸 알았다. 그냥 인터프리터만 설정하자. condapath를 설정할 일도 별로 없으니 구글링을 해도 별다른 방법을 찾지 못했다. 왜그런지는 모르겠지만 py..
웹서버 없이 티스토리 API OAuth2 인증 티스토리 API 문서를 오랜만에 보니 OAUTH 2.0으로 변경되어 있었다. 카카오 계정으로만 티스토리를 이용할 수 있게 바뀌는 과정과 관련이 있는 듯 하다. OAUTH2 인증은 매우 귀찮고 익숙해지지 않는다. 내 블로그를 API로 관리하려는 동기에는 어울리지 않는 거창한 작업이다. 티스토리 API는 일반적인 OAuth2처럼 발급받은 클라이언트ID로 임시 코드를 받고, 다시 임시 코드와 시크릿을 이용해 엑세스토큰을 취득하는 과정으로 이루어져 있다. 이 과정에서 코드와 엑세스토큰은 API를 신청할 때 입력한 callback_uri로 보내준다. 그러니 문서만 읽으면 고정아이피를 가진 웹 서버에다가 잘하면 도메인도 필요하다고 생각할 수 있다. 하지만 엑세스 토큰을 얻는 것만 목적이라면 필수는 아니다. Post..
selenium에서 dropzone에 파일 업로드하기 dropzonejs는 바탕화면이나 탐색기에서 파일을 드래그 앤 드롭해 업로드할 수 있게 해주는 유명한 라이브러리다. 보통 프로필 사진 등을 설정할 때 유용하게 쓴다. 오래전에 구현해서 가물가물하지만, 파일을 떨어트리면 설정한 경로로 파일을 보내고, 서버에서 파일을 정상적으로 저장하면 응답을 받아서 애초 form의 file input에 다시 처리하는 흐름이었던 것 같다. 로컬 파일을 브라우저에서 열 수는 있겠지만(pdf나 미디어 파일) 드래그 앤 드롭을 구현하기는 힘들 것 같았다. 드롭존을 클릭하면 파일 탐색기가 열릴텐데 headless 환경에서도 가능할까. 만약에 올리고 싶은 데이터가 파일 형태가 아니라면 또 어떻게 되는 것일까. 구글링을 해보니 비슷한 궁금증을 품은 사람들이 제법 있었는데, 원리는 비슷..