728x90

파이썬 워드클라우드를 구축하기 위해 삽질을 하여, 이전 포스팅에서 최종 설치 방법을 정리하였음.

https://antimidal.tistory.com/51

 

[Python] Python WordCloud (한글) 파이썬 한글 워드클라우드 클린 설치

리눅스 CentOS 7.x 환경에서 Python 3.11 를 설치하고, 한글 워드 클라우드 (Word Cloud) 를 사용하는 방법을 정리함.1) Python 3.11 버전을 설치2) 한글 워드 클라우드 관련 패키지 설치 및 실행단, 설치하는

antimidal.tistory.com

운이 좋게 한번에 성공하면 다행이지만, 서버 상태에 따라 필수 패키지가 설치되어 있지 않다거나 리포지토리에 설치할 패키지가 없다거나, 패키지 끼리 호환이 안된다거나 하는 문제는 언제든 발생할 수 있음.
모든 오류의 상황들을 기록할 순 없지만 정리할 수 있는 선에서 정리를 함.

 

$ python3 --version
-------------------------------------------------------------------------
에러 내용: python3: error while loading shared libraries: libpython3.11.so.1.0: cannot open shared object file: No such file or directory
-------------------------------------------------------------------------
$ ls -l /usr/local/bin/python3
- /usr/local/bin/python3.11이 링크되어 있는지 확인
$ pip3 --version
-------------------------------------------------------------------------
경고 : WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
-------------------------------------------------------------------------
- pip 명령을 root 권한으로 실행할 때 발생되고, 가상환경을 사용할 것을 권장함.

$ python3 -m venv 가상환경설정이름
$ pip3 install konlpy
-------------------------------------------------------------------------
에러 내용: error: subprocess-exited-with-error ... error: metadata-generation-failed ...
-------------------------------------------------------------------------
- pip으로 파이썬 패키지를 설치할 때 자주 발생하는 오류

1) pip, setuptools, wheel 최신 버전으로 업그레이드
   $ pip3 install --upgrade pip setuptools wheel

2) 패키지 의존성 문제일 수 있으므로 필요한 개발 라이브러리 추가 설치
   $ yum install freetype-devel libpng-devel -y
   $ yum install java-1.8.0-openjdk-devel -y
   $ yum install gcc-c++ -y
   
3) 캐시 삭제 후 재시도
   $ pip3 cache purge
   $ pip3 install konlpy
   
4) JPype1 관련 문제일 수도 있으므로 JAVA_HOME 확인후 재설치
   $ echo 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk' >> ~/.bashrc
   $ echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
   $ source ~/.bashrc
   
   # JPype1 다른 버전으로 설치해보는 것도 필요
   $ pip3 install JPype1 (최신 버전) 
   $ pip install --no-binary :all: --no-cache-dir JPype1==1.5.0 (1.5 버전)
   
   # JPype1 버전 확인
   $ python -c "import jpype; print(jpype.__version__)"
   # JVM 정상작동 확인
   $ python -c "import jpype; jpype.startJVM()"
$ pip3 install matplotlib
-------------------------------------------------------------------------
에러 내용: ERROR: Problem encountered: NumPy requires GCC >= 9.3
-------------------------------------------------------------------------
- GCC(GNU Compiler Collection) 버전이 너무 낮아서 numpy 2.3.1을 컴파일할 수 없다는 의미

1. GCC 업그레이드를 위해서 SCL 리포지토리 활성화 (EPEL 설치)
   $ yum clean all
   $ yum makecache
   $ yum install epel-release -y
   $ yum install centos-release-scl -y

2. GCC 9 설치
   $ yum install devtoolset-9 -y 
   - 최소 9이고 상위버전 가능
   - 패키지 검색되지 않으면, 레포지토리 변경 (Vault 리포지토리 사용 (CentOS 7 EOL 문제 해결))

3. 설치된 GCC 9 환경 활성화
   $ source /opt/rh/devtoolset-9/enable
   - 현재 셸 세션에만 적용되므로, 가상환경 시작(activate) 파일에 등록하여 사용

 4. 적용된 GCC 버전 확인
   $ gcc --version
   - 결과: Output should show GCC 9.x.x
$ yum install devtoolset-9 -y 
-------------------------------------------------------------------------
에러 내용: Error: Package: policycoreutils-python-2.5-29.el7.x86_64 또는 Error: Package: audit-libs-python-2.8.4-4.el7.x86_64
-------------------------------------------------------------------------
- devtoolset 패키지 의존 패키지 업그레이드 (또는 다운드레이드)

1. 업그레이드
   $ yum update policycoreutils policycoreutils-python update audit-libs audit-libs-python -y

2. 다운드레이드 (선택사항)
   - 현재 설치된 policycoreutils, audit-libs에 관련된(의존하는) 패키지 확인
   $ yum deplist policycoreutils-2.5-34.el7
   $ yum deplist audit-libs-2.8.5-4.el7
   - 문제가 없으면 다운그레이드
   $ yum downgrade policycoreutils policycoreutils-python -y
   $ yum downgrade audit-libs audit-libs-python -y

3. devtoolset-9 설치 재시도
   $ yum clean all
   $ yum makecache
   $ yum install devtoolset-9 -y
$ pip3 install konlpy
-------------------------------------------------------------------------
에러내용: RuntimeError: Can't find org.jpype.jar support library
-------------------------------------------------------------------------
- 관련 패키지 전체 삭제 후 다시 설치

1. 기존 설치된 JPype1과 konlpy 제거
   $ pip3 uninstall konlpy -y
   $ pip3 uninstall JPype1 -y
2. pip 캐시 정리
   $ pip3 cache purge
3. JPype1 먼저 설치 (Konlpy가 의존하므로)
   $ pip3 install --no-cache-dir JPype1
4. konlpy 설치
   $ pip3 install konlpy

 

 

반응형
728x90

리눅스 CentOS 7.x 환경에서 Python 3.11 를 설치하고, 한글 워드 클라우드 (Word Cloud) 를 사용하는 방법을 정리함.
1) Python 3.11 버전을 설치
2) 한글 워드 클라우드 관련 패키지 설치 및 실행

단, 설치하는 리눅스 패키지 버전과 파이썬 버전 패키지 버전, JDK 버전에 따라 예상치 못한 버그는 항상 존재함.
반복된 버그가 발생된다면 버전을 바꿔서 설치하면서 해결법을 찾을 것을 권장함.

## Python 3.11 설치

1. 개발 도구 설치
$ yum groupinstall "Development Tools" -y
$ yum install openssl-devel bzip2-devel libffi-devel zlib-devel wget -y

2. Python 3.11 소스 코드 다운로드 및 압축 해제
$ cd /usr/src
$ wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz
$ tar -xf Python-3.11.0.tgz

3. Python 3.11 컴파일 및 설치
$ cd Python-3.11.0
$ ./configure --enable-optimizations --enable-shared --with-openssl=/usr/bin/openssl 
$ make altinstall

4. Python 3.11 경로 설정
$ ln -s /usr/local/bin/python3.11 /usr/local/bin/python3
$ ln -s /usr/local/bin/pip3.11 /usr/local/bin/pip3
$ python3 --version
$ pip3 --version

5. Python 가상환경 사용 (wordcloud_env으로 가상환경 설정)
$ python3 -m venv wordcloud_env
- wordcloud_env 디렉토리 생성되고 해당 디렉토리에 가상환경 상에서 설치된 패키지들 저장됨
$ source wordcloud_env/bin/activate
- 가상환경 활성화 되면 프롬프트 앞에 (wordcloud_env)가 나타남
$ (wordcloud_env) deactivate
- 가상환경 비활성화 되고 (wordcloud_env) 사라짐

## 한글 Word Cloud 설치 및 실행

1. java, JDK 관련 확인 및 설치
$ java -version
$ javac -version
$ echo $JAVA_HOME

 (1) JAVA_HOME 이 확인되지 않을시 설치
 $ yum install java-1.8.0-openjdk-devel -y

$ echo 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk' >> ~/.bashrc
$ echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
$ source ~/.bashrc
- .bashrc 파일에 등록하여 패스 설정


2. GCC 9 설치 (EPEL설치하여 SCL 리포지토리 활성화가 우선되어야 함)
$ yum clean all
$ yum makecache
$ yum install epel-release -y
$ yum install centos-release-scl -y
$ yum update policycoreutils policycoreutils-python -y
$ yum update audit-libs audit-libs-python -y
$ yum install devtoolset-9 -y 
$ source /opt/rh/devtoolset-9/enable
- 설치된 GCC9 환경 활성화
$ gcc --version
- GCC 버전 확인


3. MeCab 본체 설치
$ curl -LO https://mecab.googlecode.com/files/mecab-0.996.tar.gz
$ tar zxvf mecab-0.996.tar.gz
$ cd mecab-0.996
$ ./configure
$ make
$ make install
$ ldconfig

4. MeCab-ko-dic (한국어 사전) 설치
$ cd ..
$ curl -LO https://bitbucket.org/eunjeon/mecab-ko-dic/downloads/mecab-ko-dic-2.1.1-20180720.tar.gz
$ tar zxvf mecab-ko-dic-2.1.1-20180720.tar.gz
$ cd mecab-ko-dic-2.1.1-20180720
$ ./configure --with-mecab-config=/usr/local/bin/mecab-config
$ make
$ make install


5. Python 가상환경 활성화시 자동 설정
$ source wordcloud_env/bin/activate

(wordcloud_env) $ vi /home/doumdoc/py_wordcloud/wordcloud_env/bin/activate
-- 맨 상단에 추가
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
source /opt/rh/devtoolset-9/enable


6. 한글 워드 클라우드에 필요한 라이브러리 설치
(wordcloud_env) $ pip3 install --upgrade pip setuptools wheel
(wordcloud_env) $ pip3 install wordcloud matplotlib
(wordcloud_env) $ pip3 install --no-binary :all: --no-cache-dir JPype1==1.5.0
 (1) JPype1 설치가 성공했는지 확인
 (wordcloud_env) $ python -c "import jpype; print(jpype.__version__)" 
 (wordcloud_env) $ python -c "import jpype; jpype.startJVM()"

 (2) Python mecab-python3 설치 (Konlpy를 위한 파이썬 바인딩)
 (wordcloud_env) $ pip install mecab-python3

(wordcloud_env) $ pip3 install konlpy


7. 나머지 패키지들 설치
(wordcloud_env) $ pip3 install Pillow numpy pymysql


8. 실행
(wordcloud_env) $ python3 wordcloud_by_me.py


9. 폰트 설치 (선택사항)
$ curl -o onestore.zip https://www.onestorecorp.com/assets/fonts/ONE_Mobile_POP.zip
$ unzip -d /usr/share/fonts/onestore onestore.zip
$ fc-cache -fv
- 폰트 캐시 갱신

 

* 설치 중 에러사항 정리

https://antimidal.tistory.com/52

 

[Python] Python 한글 WordCloud 설치 오류 정리

파이썬 워드클라우드를 구축하기 위해 삽질을 하여, 이전 포스팅에서 최종 설치 방법을 정리하였음.https://antimidal.tistory.com/51 [Python] Python WordCloud (한글) 파이썬 한글 워드클라우드 클린 설치리눅

antimidal.tistory.com

 

반응형
728x90

파이썬 selenium으로 게시물을 자동등록하는 프로그램을 사용 중에
yum 패키지 업데이트후 아래 같이 크롬드라이버 버전이 지원되지 않는 오류가 발생하였다.

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 80

 

처음 개발 당시 selenium이 잘 작동되는 소스 코드를 사용하기 위해
구버전 크롬드라이버를 일부러 다운로드 받아 설치해서 쓰고 있었는데,
패키지 업데이트 중에 해당 드라이버까지 업데이트가 된 것이 문제인 것 같았다.

윈도우 pc에서 사용하는 크롬드라이버라면 크롬브라우저를 설정함으로 해결할 수 있는데,
리눅스 상에서 크롬드라이버라 몇가지 찾아서 확인해야 한다.
현재 리눅스에서 크롬드라이버 버전을 찾아서 적용하던지, 아니면 맞는 버전을 새로 다운로드해야 한다.

// 크롬드라이버를 모두 찾는다.
]# find / -name 'chromedriver'

// 검색된 크롬드라이버들 버전을 확인하여 현재 필요한 버전를 사용한다.
]# /root/.wdm/drivers/chromedriver/linux64/87.0.4280.20/chromedriver --version

// 기존 사용하던 크롬드라이버 경로에 복사해서 사용하면 된다.
]# cp /root/.wdm/drivers/chromedriver/linux64/87.0.4280.20/chromedriver /home/python/

버전이 잘 맞는 크롬드라이버를 찾아서 교체해줬다면 위 에러가 해결된다.

 

참조 : codechacha.com/ko/selenium-chromedriver-version-error/

반응형

+ Recent posts