단어 추출 도구(2): 단어 추출 도구 실행환경 구성
단어 추출 도구는 Python으로 개발된 도구이고, 실행에 앞서 Python과 필요한 package 설치 등의 환경 구성 과정이 필요하다. 단어 추출 도구 실행환경 구성 에 대해 살펴본다.
이전 글에서 이어지는 내용이다.
2. 단어 추출 도구 실행환경 구성
2.1. 환경 구성 개요
2.1.1. 권장사항
Anaconda보다는 Miniconda 설치를 권장한다. Anaconda는 너무 많은 package를 기본환경에 설치하여 용량이 크다. 용량이 작고 가볍게 시작할 수 있는 Miniconda를 사용하는 것이 좋다.
Miniconda를 설치하지 않았을 경우 virtualenv 설치를 권장한다. 기본 환경과 격리된 별도의 환경에 package를 설치하면 package의 버전 충돌 문제등을 피할 수 있다.
만약 별 문제가 없을 거라고 판단되거나 단어추출기만을 사용하는 경우 기본환경을 사용해도 무방하다. 이 글은 Windows 10 64bit에서 Miniconda를 사용하는 방법을 설명한다.
2.1.2. 형태소 분석기 선택: Mecab
Mecab은 공개되어 있는 자연어 형태소 분석기중 실행이 가장 빠르고 단어추출이라는 목적에 가장 부합하여 선택하였다. Mecab이 아닌 다른 형태소 분석기를 사용하려면 get_word_list() 함수를 고쳐 사용하면 된다.
2.1.3. 환경 구성 전체 순서
- Miniconda 설치
- 가상환경 생성, 활성화
- 가상환경에 Python 설치
- 가상환경에 필요한 package 설치 (가상환경을 사용하지 않는 경우 기본환경에 설치)
2.2. Miniconda 설치
https://conda.io/en/latest/miniconda.html#windows-installers 에서 Python version을 선택하여 다운로드 한다. 단어 추출 도구는 Python 3.8에서 개발하였고, 3.9에서도 잘 동작한다. 여기서는 3.9를 다운로드하고 설치하겠다.
다운로드된 파일(Miniconda3-py39_4.10.3-Windows-x86_64.exe)을 실행하여 설치를 진행한다. Next 버튼을 몇 번 클릭하면 설치가 완료된다.
이후 작업은 Miniconda Prompt에서 실행한다. 다음 경로에서 실행할 수 있다.
시작메뉴 > Anaconda3 (64bit) > Anaconda Prompt (miniconda3)
2.3. 가상환경 생성, 활성화
Miniconda Prompt를 처음 실행하면 기본 환경(base)이 활성화되어 있다. (위 이미지 참조)
단어 추출 도구를 위한 별도의 가상환경을 생성한다.
(base) C:\Users\ymlee>conda create -n wordextr
다음 명령으로 생성한 가상환경을 활성화한다. 명령어 실행 후 가상환경명(wordextr)이 앞에 보이면 정상적으로 활성화 된 것이다.
(base) C:\Users\ymlee>conda activate wordextr (wordextr) C:\Users\ymlee>
2.4. 가상환경에 Python 설치
다음 명령어를 실행한다.
(wordextr) C:\Users\ymlee>conda install python
다음과 같은 내용이 출력된다.
(wordextr) C:\Users\ymlee>conda install python Collecting package metadata (current_repodata.json): done Solving environment: done ## Package Plan ## environment location: C:\Users\ymlee\miniconda3\envs\wordextr added / updated specs: - python The following NEW packages will be INSTALLED: ca-certificates pkgs/main/win-64::ca-certificates-2021.7.5-haa95532_1 certifi pkgs/main/win-64::certifi-2021.5.30-py39haa95532_0 openssl pkgs/main/win-64::openssl-1.1.1l-h2bbff1b_0 pip pkgs/main/win-64::pip-21.2.4-py38haa95532_0 python pkgs/main/win-64::python-3.9.7-h6244533_1 setuptools pkgs/main/win-64::setuptools-58.0.4-py39haa95532_0 sqlite pkgs/main/win-64::sqlite-3.36.0-h2bbff1b_0 tzdata pkgs/main/noarch::tzdata-2021a-h5d7bf9c_0 vc pkgs/main/win-64::vc-14.2-h21ff451_1 vs2015_runtime pkgs/main/win-64::vs2015_runtime-14.27.29016-h5e58377_2 wheel pkgs/main/noarch::wheel-0.37.0-pyhd3eb1b0_1 wincertstore pkgs/main/win-64::wincertstore-0.2-py39h2bbff1b_0 Proceed ([y]/n)?
그냥 엔터키를 누르거나 y 입력후 엔터키를 누르면 설치가 시작된다. 참고로, 설치하지 않으려면 n 입력후 엔터키를 누른다.
2.5. 필요한 package 설치
다음의 명령어로 필요한 package를 설치한다. wordcloud, eunjeon은 conda에서 제공하지 않아 pip로 설치해야 한다.
conda install pywin32 conda install pandas conda install Jinja2 conda install xlsxwriter pip install wordcloud pip install eunjeon
각 package의 용도는 다음과 같다.
- pywin32: MS Word, PowerPoint, Excel 파일을 OLE automation 방식으로 열어서 읽는데 사용
- pandas: 단어 추출 결과를 메모리에서 관리하고, 마지막에 엑셀 파일에 저장하는데 사용
- Jinja2, xlsxwriter: pandas에서 ExcelWriter에 사용
- wordcloud: 단어 추출 결과를 시각화하는데 사용
- eunjeon: 한국어 형태소 분석기 Mecab 사용
eunjeon 설치시 “Microsoft Visual C++ 14.0 or greater is required.” 오류가 발생하는 경우 아래 URL에서 ‘재배포 가능 패키지 및 빌드 도구’ 중 ‘Microsoft Build Tools 2015 업데이트 3’를 다운로드 받아서 설치하고 다시 시도한다.
https://visualstudio.microsoft.com/ko/vs/older-downloads/#microsoft-build-tools-2015-update-3
설치시 “C++를 사용한 데스크톱 개발”을 선택하고 설치한다. (아래 화면은 설치 이후에 캡쳐한 화면으로 설치시 화면과 약간 다르다)
“Microsoft Build Tools 2015 업데이트 3” 설치 완료 후, 다음 명령으로 eunjeon을 설치한다.
pip install eunjeon
eunjeon 설치가 완료되었으면, “Microsoft Build Tools 2015 업데이트 3″은 제거해도 된다.
시작 메뉴에서 ‘Visual Studio Installer’를 실행하고 “C++를 사용한 데스크톱 개발” 선택 해제, 우측 하단의 “수정”버튼을 클릭하여 제거한다.
여기까지 진행하면 환경구성은 완료되었다. 다음에는 단어 추출 도구 실행과 결과를 확인하는 방법에 대하여 살펴보겠다.
<< 관련 글 목록 >>
(wordextr) E:\WordExtractor>python word_extractor.py –in_path .\in –out_path .\out
python을 처음 사용하는 초보입니다ㅠㅠ. 위와 같이 실행을 했는데 아래와 같은 결과가 나왔습니다. 뭔가 경로지정이 잘못된 것 같은데 이 초보가 해결을 못하는군요ㅠ. 도와주시면 감사하겠습니다(정확하게 in, out폴더는 만들어져 있음).
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
————————————————————
Word Extractor v0.41 start — 2023-11-20 03:13:07.584787
##### arguments #####
multi_process_count: 32
db_comment_file: None
in_path: .\in
out_path: .\out
————————————————————
[2023-11-20 03:13:07.586789] Start Get File List…
[2023-11-20 03:13:07.586789] Finish Get File List.
— File List —
E:\WordExtractor\in\test.txt
[2023-11-20 03:13:07.588790] Start Get File Text…
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
E:\WordExtractor\word_extractor.py:382: SyntaxWarning: invalid escape sequence ‘\o’
usage_description = “””— Description —
E:\WordExtractor\word_extractor.py:406: SyntaxWarning: invalid escape sequence ‘\i’
parser.add_argument(‘–in_path’, required=False, help=’입력파일(ppt, doc, txt) 경로명(예: .\in) ‘)
E:\WordExtractor\word_extractor.py:407: SyntaxWarning: invalid escape sequence ‘\o’
parser.add_argument(‘–out_path’, required=True, help=’출력파일(xlsx, png) 경로명(예: .\out)’)
get_txt_text: E:\WordExtractor\in\test.txt
multiprocessing.pool.RemoteTraceback:
“””
Traceback (most recent call last):
File “C:\ProgramData\miniconda3\envs\wordextr\Lib\multiprocessing\pool.py”, line 125, in worker
result = (True, func(*args, **kwds))
^^^^^^^^^^^^^^^^^^^
File “C:\ProgramData\miniconda3\envs\wordextr\Lib\multiprocessing\pool.py”, line 48, in mapstar
return list(map(*args))
^^^^^^^^^^^^^^^^
File “E:\WordExtractor\word_extractor.py”, line 367, in get_file_text
df_text = get_txt_text(file_name)
^^^^^^^^^^^^^^^^^^^^^^^
File “E:\WordExtractor\word_extractor.py”, line 238, in get_txt_text
df_text = df_text.append(sr_text, ignore_index=True)
^^^^^^^^^^^^^^
File “C:\ProgramData\miniconda3\envs\wordextr\Lib\site-packages\pandas\core\generic.py”, line 6204, in __getattr__
return object.__getattribute__(self, name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: ‘DataFrame’ object has no attribute ‘append’. Did you mean: ‘_append’?
“””
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File “E:\WordExtractor\word_extractor.py”, line 559, in
main()
File “E:\WordExtractor\word_extractor.py”, line 460, in main
mp_text_result = pool.map(get_file_text, file_list)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\ProgramData\miniconda3\envs\wordextr\Lib\multiprocessing\pool.py”, line 367, in map
return self._map_async(func, iterable, mapstar, chunksize).get()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\ProgramData\miniconda3\envs\wordextr\Lib\multiprocessing\pool.py”, line 774, in get
raise self._value
AttributeError: ‘DataFrame’ object has no attribute ‘append’
(wordextr) E:\WordExtractor>
안녕하세요, 반갑습니다.
제가 경험하지 못한 오류라서 바로 해결방법을 알려드리기가 어렵네요.
Python version과 numpy, pandas 버전을 확인해서 알려주시겠어요?
version이 달라서 확인이 필요할것 같네요.
참고로, 제가 구현하고 테스트한 환경의 version은 다음과 같습니다.
– Python: 3.9.6 (확인 방법: python –version)
– numpy: 1.20.3 (확인 방법: pip list) (아래 pandas도 한번에 확인할 수 있음)
– pandas: 1.3.1
저도 같은 에러가 났었는데요. 공유해주신 패키지들 버전 맞춰서 실행했더니 성공했습니다
안녕하세요. 아나콘다 설치와 관련하여 질의있습니다. 회사 내부에서 단어추출도구를 사용해보고 싶은데, 아나콘다가 유료화되어 회사에서는 miniforge사용을 권장하고 있습니다. miniforge 설치 후 단어추출도구 사용해도 기능에는 차이가 없을까요?
제가 miniforge를 사용해 보지 않아서 기능적인 차이가 있을지는 모르겠습니다.
miniconda를 설치하는 목적은 package 설치 편이성 보다는 가상환경을 쉽게 만들고 관리하기 위함이었습니다.
다음과 같이 해보세요.
– miniconda 대신 venv 또는 virtualenv 사용 (참조: https://richwind.co.kr/193)
– “2.5. 필요한 package 설치” 내용중 “conda install”을 “pip install”로 변경
잘 되길 바랍니다.
일단 miniforge 설치해서 Miniforge Prompt에서 위의 과정을 수행했는데 별일 없이 되었어요.
그리고 알려주신 ‘Microsoft Build Tools 2015 업데이트 3’는 설치가 잘되지 않아서 저는 Microsoft Build Tools 2022를 설치하고 eunjeon 받았습니다.
이제 추출도구 사용해보고 또 피드백 드릴게요 🙂
잘 실행되길 바랍니다 ^^