기본 콘텐츠로 건너뛰기

nltk 라이브러리 사용 문제-pip install invalid syntax, 환경 변수 path 설정

야메로 python을 배우다보니 기본적인 부분에서 문제가 발생하면 해결이 참 난감하다. python 3.9.x로 작업을 하고 있었는데, nltk를 import해서 word_tokenize 함수를 사용하려 할 때 문제가 발생했다.

오류가 발생할 때 문제해결에 집중해서 관련 문제가 구체적으로 무엇이었는지 찍어 놓지를 않아서 구체적인 오류 코드를 확인하지 못했다.

다만 python 3.9에 아나콘다3를 설치하고 Pycharm을 주로 사용했는데, nltk의 word_tokenize()를 쓰려고 할 때 문제가 발생했다.

문제해결 방법으로 일반적으로 추천되는 것이

nltk가 잘 인스톨 되었는지 체크하고 문제가 있다면 nltk.download()로 해결할 수 있다는 것이었다.

가령 저런 정보를 확인하고 시도해 보았다. 그러나 어떻게 된 일인지 cmd 창에서 'python'이 먹히지 않았고 python 창을 띄워서 작업하면 다음과 같은 결과가 나왔다.

nltk 라이브러리가 없어서 문제라 생각해서 pip install nltk를 입력했는데, invalid syntax 오류만 떴다. 위에서 말한 대로 'nltk_data' 폴더를 C:에 만들고 해당 패키지를 수동으로 다운로드해서 시도해 봤지만 오류는 해결되지 않았다. 

어딘가에서는 [시스템 속성>고급>환경변수>path]에서 'C:\Python'과 'C:\Python\Scripts'를 추가하면 문제가 해결될 것이라 해서 그렇게 해 봤는데 역시 문제는 해결되지 않았다.

'nltk 설치 오류' 등을 찾다가 아래와 같은 설명을 만날 수 있었다.

그래서 python 3.9.x를 지우고 3.7.9를 다시 설치했다.

그러나 invalid syntax 문제는 해결되지 않았다. 계속 찾아보니 경로의 문제라는 지적이 있었다. 앞에서도 봤던 것이라 시큰둥 했는데 경로 주소가 앞서 제시한 것과는 달랐다.

C:\Users\[user_com_name]\AppData\Local\Programs\Python\Python37\
C:\Users\[user_com_name]\AppData\Local\Programs\Python\Python37\Scripts\

이걸 넣어주라는 것이었다. 이렇게 하니 pip install 명령도 적용이 되었고, nltk 라이브러리 설치도 문제가 없었다.

이것저것 찾아보니 이 환경 변수 추가 조치는 '기본'인 것 같다. 이 기본기를 몰라서 삽질 오지게 했다. 3.9의 호환성 이슈보다는 환경 변수 설정 문제였던 것 같다.

일단 pip이 먹히지 않으면 환경 변수부터 손보고 라이브러리 설치 및 호환성 문제를 따져야 할 것 같다. 개고생 하며 하나 배웠다.

코랩colab에서 작업할 때 nltk를 설치하고 punkt가 없을 시에 error가 생긴다. nltk.download('punkt')를 실행하면 문제를 해결할 수 있다. 그러면 word_tokenize()를 적용할 수 있게 된다. 

기타 여러가지 패키지를 요구할 수 있는데, 그 경우에도 에러 코드에 설치 필요한 패키지를 알려 준다. 간편하게 대응할 수 있는 방법은 nltk.download('popular')이다. 인기있는 패키지를 쫙 깔아 준다.

댓글

이 블로그의 인기 게시물

태백산, 산당, 서낭당 그리고 사람들┃답사 후기

[2017년 6월에 태백산 일대의 답사를 다녀와서 쓴 글입니다. 답사는 6월 3일부터 6월 4일까지. 후기 작성일 2017. 6. 7.] · · · 태백산에 다녀왔다. 천제단, https://www.khan.co.kr/local/Gangwon/article/202204281434001#c2b 난 답사를 싫어한다. 주위 사람들은 다 알고 있다. '왜 가야 하나'에 적절한 답을 가져본 적이 없다. 학부 때는 '학술'을 가장한 MT같은 것이니 어쩔 수 없다 싶었는데, 대학원에 들어와서는 그마저도 관심이 시들해졌다. '학'은 사라지고 '술'을 위해서 가는 것이라면 또 굳이 갈 이유가 있을까 싶기도 했다. (실제 답사가 다 그런 것은 아니다. 내가 답사에서 무언가 발견할 수 없었기 때문에 그렇게 느꼈던 것 같다) 그런데 박사수료 후부터 조금 달라졌다. 이제 '그곳'에 가면 이야기가 보이기 시작한다. 그것도 재미가 있다. 왜 그런가 싶었는데, 역시 수준 높은 연구자들과 함께 가서 그런 것 같다. 혼자 갔다면 도저히 그곳의 이야기, 그곳 사람들의 이야기를 듣지 못했을 터다. ('자기 문제의식'이 명료화 되었다는 점도 중요한 것 같기는 하다) '산악신앙'은 상식적으로는 '원시신앙'으로 학술적으로는 자연신앙 내지는 마을신앙과 관련된 민속신앙으로 이야기된다. 고도의 신학적 이야기, 그래서 인생의 의미를 음미하는 따위의 것이 담겨있지 않다. 그래서 상당히 빈곤하게 이해된다. 그런데 이번에 태백산 답사를 가서, 거기에 '인간'을 들여다 보는 '어떤 창'이 있다는 것을 새삼스럽게 확인하게 되었다. 산은 '신성한 곳'이다 태백산 같이 높은 산, 주변 지역의 '중심'이 되는 산은 특히 그렇다. 그런 산들은 일단 직접적으로 인간에게 '위험'하다. 맹수로부터 목숨을 위협 받을 수 있는 곳이다. 높...

"명상 수련이 뇌와 면역 체계에 급속한 변화를 일으킨다"(논문 이미지 설명)

 신심미약종교학 채널 에서 다뤘던 " Neural and molecular changes during a mind-body reconceptualization, meditation, and open label placebo healing intervention " 논문 리뷰글에 이어서, 해당 논문의 핵심 메시지를 논문의 그림들에 대한 설명을 중심으로 이곳에 정리한다. 논문 소개 Neurosciencenews.com 기사 "마음과 몸의 재개념화, 명상 및 공개 라벨 위약 치유 중재 과정에서의 신경 및 분자적 변화"(2025)의 연구 실험 설계를 담고 있는 그림1 출처: https://www.nature.com/articles/s42003-025-09088-3 Fig. 1: Study design, participants, data collection, and recruitment에 대한 설명 이 그림은 7일간의 집중 명상 프로그램이 인간의 뇌와 신체에 미치는 영향을 과학적으로 측정한 연구의 전체적인 설계를 보여주고 있다. A. 연구진은 먼저 뇌와 신체의 생물학적 변화를 포착하기 위한 다양한 측정 방법을 준비했다. 뇌의 변화를 관찰하기 위해 MRI를 통한 기능적 연결성과 구조적 변화를 측정하고, 신체의 변화를 파악하기 위해 혈액 샘플에서 신경 성장 인자, 대사 물질, 단백질, 그리고 엑소좀 내 RNA까지 광범위하게 분석하는 체계를 구축했다. B. 연구에는 총 20명이 참여했는데, 이 중 14명이 여성, 6명이 남성이었으며 평균 연령은 46세였다. 참가자들은 명상 경험 수준에 따라 초보자와 숙련자로 구분되었고, 각 참가자의 생체 표지자 수준도 사전에 측정되어 분류되었다. C. 프로그램은 9일에 걸쳐 진행되었다. 실제 개입 프로그램은 Day 1부터 Day 7까지 7일간 진행되었으며, 참가자들은 매일 4-6시간의 명상, 2-4시간의 재개념화 교육(고통과 치유에 대한 인식 전환), 그리고 1시간 내외의 치유 의식에 참여했다. 프로그램...

천문학적으로 의미가 없는 1월 1일은 왜 새해 첫날이 되었을까?

천문학적 관점에서 볼 때 1월 1일은 참 애매한 날입니다. 지난 번에 '크리스마스와 동지 축제'라는 시리즈 글을 다루면서 동지가 '시간의 마디'로 인식된 측면(참고: 절기, 시간의 마디와 의례 본능 )도 이야기한 바 있습니다만, 천체의 움직임(태양이나 달)과 1월 1일은 사실 연결되어 있지 않습니다. 태양 고도의 극점(solstice)이나 평분점(equinox)은 시간 사이클 상에서 변화의 기준점 역할을 하지만 달력에는 애매한 위치에 자리잡고 있습니다. 21, 22일 혹은 22, 23일입니다(2023 춘분: 3월 21, 하지: 6월 21일, 추분: 9월 23일, 동지: 12월 22일). 왜 이렇게 되었는가를 역사적 기원으로 이야기하면 율리우스력을 이야기하게 됩니다. 율리우스 카이사르가 새로운 역법을 정할 때 1년을 365.25일로 정하고(소수점 시간은 윤년으로 처리), 춘분을 3월 23일로 정했다고 합니다. 그래서 지금의 1월 1일이 신년의 첫날이 된 것이라고 합니다. 춘분을 4월 1일로 만들었다면 어땠을까요? 그럼 동지가 1월 1일이 되었을 겁니다. 왜 그런 선택을 하지 않았을지 궁금합니다. 천문학적 기준점을 왜 새해 첫날로 삼지 않았을까라는 의문은 계속 해소되지 않습니다. 고대 로마 달력 https://www.througheternity.com/en/blog/history/beware-ides-march-assassination-julius-caesar.html 율리우스력의 기원이 되는 이집트력을 생각해 봐야 하는 것인지도 모릅니다. 이집트력은 농경 생활과 천문 지식의 결합을 통해서 만들어졌다고 볼 수 있습니다. 고대 이집트 달력 https://historicaleve.com/ancient-egyptian-calendar/ 이집트인들은 나일강의 범람 주기, 천문 현상의 변화에 대한 지식을 가지고 한 달을 30일, 1년을 365일(3개 계절-범람기Akhet, 발아기Peret, 추수기Shemu)로 하는 역법...