출처 : EBS 홈페이지

 

 

코로나19 사태로 인해 아이들이 집에 있는 시간이 늘어나고 있다. 하지만 우리 집에는 케이블 방송을 신청하지 않아 아이들이 볼 만한 방송은 EBS 밖에 없다. 

 

큰 아이가 좋아하는 방송 중 "와글와글 미술관"이 있다. 2014년 2월부터 2015년 2월까지 1년 동안 26개의 이야기가 방영되었고, 예전 자료를 2020년에도 계속 방송해주고 있다.

 

와글와글 미술관이 좋은 점 중 하나가 방송 중에 아이들이 체험할 수 있는 자료와 방법을 제공하기 때문이다. 교육방송답다.

 

출처 : EBS 홈페이지

 

하지만, 위 사진에서 보이는 "EBS 클립뱅크" 접속되지 않는다. 그 이유는 EBS가 클립뱅크 서비스를 2020년 1월 31일까지만 제공하고 종료하였기 때문이다. 클립뱅크의 일부 자료들은 유튜브 채널을 통해 제공한다고 한다. 동영상은 유튜브에 올라가지만, 아이들이 실습할 수 있는 이미지 자료들은 따로 제공되는 곳이 없다.

 

 

출처 : EBS 홈페이지

 

 

 

EBS에 문의하였지만, 요즘 온라인 개학 때문에 바쁜지 연결이 쉽지 않았다. 어렵게 상담원과 연결되어 원하는 사항을 정말 어렵게 납득을 시키고, 원하는 자료를 정말 어렵게 받았다. 이게 뭐라고...

 

제공받은 자료의 목록은 다음과 같다.

   제2화 - 느루아르, 물 뿌리개를 든 소녀 - 동영상 보러가기

   제3화 - 세잔, 사과가 담긴 접시가 있는 정물 - 동영상 보러가기

   제8화 - 고갱, 나페아 파 이포이포 - 동영상 보러가기

   제10화 - 김홍도, 빨래터 - 동영상 보러가기

   제13화 - 명화 속 정물화 - 동영상 보러가기

 

 

 

제공받은 자료 다운로드(출처 : EBS)

와글와글 미술관.zip
7.33MB

 

 

위 압축 파일에는 다음의 자료가 포함되어 있다. 

 

 

 

제공받은 자료를 실습하기 위해서는 다음의 준비물이 필요하다.

   제2화 - 느루아르, 물 뿌리개를 든 소녀        - 그림, 옷감, , 단추, 리본, , 물감, 가위, 본드

   제3화 - 세잔, 사과가 담긴 접시가 있는 정물 - 그림, 사과 사진, 가위, 풀

   제8화 - 고갱, 나페아 파 이포이포               - 그림, 색종이, 가위,

   제10화 - 김홍도, 빨래터                           - 그림, 붓펜, 물감, , 사인펜

   제13화 - 명화 속 정물화                            - 그림, 꽃병, 아크릴 물감, , 스펀지

 

 

바쁜 와중에도 자료를 제공해준 EBS에 감사드리며, 2014~2015년에 만든 영상을 2020년에 방송하려면 자막을 미리 좀 검토해줬으면 좋겠다. 

 

2020.04.21. 코리.

 

 

 

 

한글에서 표지나 간지 편집을 하다 보면, 이미지를 페이지에 꽉 채워야 하는 경우가 있다. 이미지를 배경으로 삽입하는 방법 말고 유용한 방법이 있다. 

 

 

사진 출처 : https://www.hanwha-advanced.com/1021

 

위 그림에서 보는 바와 같이 한글에 삽입한 사진을 페이지에 꽉 채우는 방법에 대한 이야기이다.

   - 여백 조정하지 않고

   - 이미지를 배경으로 넣지 않고

 

 

 

이미지 위에서 마우스 우클릭을 해서 속성으로 들어간 후 다음과 같이 수정한다.

1. 본문과의 배치를 "글 뒤로" 선택

2. 가로 종이의 왼쪽 기준 0mm

3. 세로 종이의 위 기준 0mm

 

 

위와 같이 셋팅하고, 이미지 위에 글자를 적으면 표지 완성!

 

- 한글에서 사진을 전체 페이지에 꽉 채우기 완성

- 한글에서 그림을 전체 페이지에 가득 채우기 완성

- 한글에서 이미지를 가득 채우기 완성

 

 

2020.04.13. 코리.

 

 

 

 

윈도우(windows)에서 카이(Khaiii) 설치하기 - 그 네 번째 이야기. Khaiii 빌드와 설치

 

 

첫 번째 이야기 보러가기 - 리눅스 설치

두 번째 이야기 보러가기 - 리눅스 세팅

세 번째 이야기 보러가기 - 필요한 패키지 설치와 jupyter notebook 실행

 

 

리눅스에서 jupyter notebook까지 실행했다면, 이제 마지막 단계를 남겨두고 있다. 드디어 Khaiii를 설치한다. Khaiii 설치는 다음의 단계를 따른다.

   - 빌드 툴 설치

   - Khaiii 빌드

   - Khaiii 설치

 

오늘도 가슴 설레는 오류가 기다리고 있다.

 

 

 

▲  위는 동영상

  아래는 글

 

 

sudo pip3 install cmake

 

우선 cmake 3.10. 이상의 설치가 필요합니다.

 

CMake(Cross Platform Make)는 멀티플랫폼으로 사용할 수 있는 Make의 대용품을 만들기 위한 오픈소스 프로젝트이다[1]. 여기서 make는 소프트웨어 개발을 위해 유닉스 계열 운영 체제에서 주로 사용되는 프로그램 빌드 도구이다 [2].

무슨 말인지 모르겠다. 그냥 뭔가 설치하기 위한 도구인가 보다.

 

 

 

시작하자마자 오류를 출력합니다. 그렇지... 오류 없이 그냥 지나가면 허전하지...

 

"Module Not Found Error : No module named 'skbuild' "

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-dpt1duvm/cmake/

 

일단 skbuild라는게 없어서 오류가 나는 것으로 보입니다.

"scikit-build / cmake-python-distributions" 라는 github에 유사한 증상에 관한 글이 있지만 이미 해결된 상태(closed)입니다.[3]

 

한참 동안 방법을 찾다가 앞서서 사용한 "apt-get"이 떠올랐습니다. 무작정 해봤습니다. 됩니다.

sudo apt-get install cmake

 

무작정 해본 거라, 소 뒷걸음질 치다 쥐 잡은 꼴입니다. 

좀 찾아보니 "pip3 install"과 "apt-get"에는 어디서부터 패키지를 받아오는지에 대한 작은 차이가 있었습니다.

 

앞서 살펴본 바와 같이 pip는 package installer for python을 의미한다. 반면 apt는 Advanced Packaging Tool을 의미합니다. pip로 설치하면 파이썬과 관련된 곳에서 파일을 다운로드 받고, apt를 사용하면 우분투와 관련된 곳에서 파일을 다운받는 것으로 확인된다.

 

위에 오류난 그림에서 보면 "Downlonding https://files.pythonhosted.org/packages/....." 으로 나타나지만, apt-get으로 실행한 화면에서는 "Get: 1 http://archive.ubuntu.com/ubuntu bionic..."로 나타난다.

 

 

git clone https://github.com/kakao/khaiii.git

깃헙에서 khaiii 관련 파일을 복사한다.

 

 

# khaiii 폴더로 이동(cd = change directory)
cd khaiii

# khaiii 폴더 아래에 build 폴더 만들기(mkdir = make directiory)
mkdir build

# build 폴더로 이동
cd build

# 프로그램에 필요한 리소스 준비(끝에 점 2개 찍어야 함) - 약 10분 정도 걸림
sudo cmake ..

# 빌드 실행 - 약 5분 걸림
sudo make all

# 리소스 빌드(large와 base중 선택, 저장용량에 문제가 없다면 large 선택)
sudo make large_resource # large
sudo make resource       # base

# khaiii 설치
sudo make install 

# python과 바인딩
sudo make package_python
cd package_python
sudo pip3 install . # 마지막에 점 하나 찍어야 함, 약 5분 걸림

 

 

드디어 khaiii 설치를 완료하였습니다.

"Successfully installed khaiii"가 반갑습니다.

 

 

이제 khaiii를 설치했으니, 다음에는 khaiii를 활용한 간단한 분석 이야기를 해볼까 합니다.

 

 

참고자료

 

[1] https://ko.wikipedia.org/wiki/CMake 

[2] https://ko.wikipedia.org/wiki/Make_(소프트웨어)

[3] https://github.com/scikit-build/cmake-python-distributions/issues/86

 

 

2020.04.12. 코리.

 

 

 

 

윈도우(windows)에서 카이(Khaiii) 설치하기 - 그 세 번째 이야기. 필요한 패키지 설치와 jupyter notebook 실행

 

 

첫 번째 이야기 보러가기 - 리눅스 설치

두 번째 이야기 보러가기 - 리눅스 세팅

 

 

 

윈도우에 리눅스(Ubuntu)를 성공적으로 설치하고 기본적인 세팅을 완료하였으니, Khaiii 설치를 위한 기본 패키지를 설치해야 한다.

   - jupyter, numpy, pandas 설치하기 

 

 

 

 

▲  위는 동영상

  아래는 글

 

 

sudo pip3 install jupyter numpy pandas

 

위의 명령어로 jupyter, numpy, pandas를 설치합니다. 설치하는데 시간이 조금 걸립니다. (한 5분 정도)

 

이제 낯선 리눅스와 이별하기 위해 jupyter notebook을 입력하고 실행합니다.

오류 없이 실행되면 허전합니다.

 

 

 

jupyter notebook을 입력하고 실행하면 위 사진의 윗부분과 같은 결과가 나타나야 정상인데, 화면이 깜빡이면서 아래 빨간색 글자가 0.1초 나타났다가 완전히 먹통(검은색 화면으로 바뀌어버리는) 오류가 나타납니다. 오류는 항상 설레죠.

 

먹통인 화면에서 탈출하는 방법은 "ctrl+c"를 눌러 중지시킨 후, "shutdown this notebook server?" 라는 질문에 "y"로 응답해주면 됩니다.

 

빨간색 오류는....

categoryinfo : invalid operation [start-process], invalid operation exception

fully qualified error id : Invalid Operation Exception.Microsoft.PowerShell.Commands.StartProcessCommand

 

뭔가 잘못된다고 합니다. 원인을 찾아 헤매다가 근본 원인을 파악하여 해결하지는 못했지만, jupyter notebook을 실행하기 위한 방법은 찾았습니다.

 

jupyter notebook --no-browser

브라우저 없이 주피터 노트북을 실행하도록 하면, 위에서 경험한 오류 없이 원하던 정보가 나타납니다. 아마도 위에서 경험한 오류는 주피터 노트북을 실행하는 과정에서 브라우저와 뭔가 연결이 잘 안돼서 나타나는 현상이라 추정됩니다.

 

 

 

원하던 정보가 정상적으로 출력되었습니다.

가장 아래 출력된 두 줄은 jupyter notebook을 실행할 수 있는 내부 주소입니다. 두 줄 중 한 줄을 마우스로 긁어서 복사(ctrl+c)합니다.

 

윈도우에서 브라우저(크롬 등)를 실행해서 주소창에 복사한 내용을 붙여놓고 엔터키를 눌러주면 드디어 jupyter notebook이 실행됩니다.

 

 

 

반가운 김에 hello world를 출력해 봅니다.

 

 

 

이제 Khaiii를 사용하기 위한 기본 준비를 마쳤습니다.

다음은 본격적인 khaiii 설치에 대한 내용을 포스팅할 예정입니다.

 

다음 이야기 보러가기 :

2020/04/12 - [Bigdata_tips] - [python] 윈도우에서 카이(Khaiii) 설치하기_04.Khaiii 빌드와 설치

 

 

파이썬을 학습하며 남기는 블로그입니다.

질문, 지적, 조언은 항상 환영합니다.

 

 

2020.04.08. 코리.

 

 

 

 

윈도우(windows)에서 카이(Khaiii) 설치하기 - 그 두 번째 이야기. 리눅스 세팅

 

 

첫 번째 이야기 보러가기 - 리눅스 설치

 

 

윈도우에 리눅스(Ubuntu)를 성공적으로 설치하였다면, 카이를 사용하기 위한 몇 가지 세팅이 필요하다.

할 일은 다음과 같다.

   - username과 password 입력

   - 전체 패키지 업데이트

   - 전체 패키지 업그레이드

   - pip 설치

 

 

 

 

 

▲  위는 동영상

  아래는 글

 

 

리눅스 아이콘에 마우스 우클릭하여 관리자 권한으로 실행한다.

그럼, CMD창이나 예전 DOS창과 같은 검은색 화면이 하나 실행된다. 처음 구동하는 경우, 시간이 1~2분 정도 걸리니 여유롭게 기다려야 한다.

 

 

준비가 되면 username을 입력하라는 메시지가 나타난다. 자기 컴퓨터에서만 사용되는 이름이니 아무것이나 입력해도 된다.

 

username을 입력하면 password를 입력하라는 메시지가 나타난다. 비밀번호는 반드시 메모를 해둬야 한다. 비밀번호를 잊어버리면 리눅스를 다시 설치해야 하는 불상사가 생긴다. 비밀번호를 타이핑해도 입력 커서가 움직이지 않는다. ***로 입력되지도 않는다. 그래도 정상적으로 입력되는 것이니 오타 내지 않도록 잘 입력한다. 비밀번호를 확인하기 위해 한 번 더 입력하는 절차가 있다.

 

 

전체 패키지를 upgrade 하고 update 하기 위해 다음의 코드를 하나씩 실행한다. 

sudo apt-get upgrade
sudo atp-get update

 

첫 번째 줄을 실행하면 비밀번호를 입력하라는 메시지가 나타난다. 위에서 입력한 비밀번호를 입력하고 엔터키를 누르면 된다. 그 이유는 리눅스의 "sudo" 명령어가 윈도우의 "관리자 권한으로 실행"과 유사한 개념으로 "Super User DO"를 의미한다. 관리자 권한으로 뭔가를 하려고 하니 관리자 비밀번호를 입력하라는 것이다.

 

upgrade와 update는 생각보다 시간이 꽤 걸린다. 둘 다 합쳐서 10분 정도 걸린 것으로 기억난다. 

 

 

 

 

다음 단계는 파이썬 패키지 인스톨러인 pip 설치를 위해 다음의 코드를 실행한다.

sudo apt-get install python3-pip

 

pip는 package installer for python을 의미한다. 파이썬으로 작성된 패키지를 다운로드, 설치, 관리하기 위한 것이다.[1] 

pip3는 python3 버전으로 설치하는 것이고, 그냥 pip는 python2 버전으로 설치하는 것이다.[2] pip 설치 중 오류가 발생하면 위에서 실시한 update를 될 때까지 계속해봐야 한다.

 

 

 

pip가 정상적으로 설치되었는지 확인하기 위해 다음의 코드를 실행한다.

pip3 --version

실행 결과 위 그림과 같이 조회되면 제대로 설치된 것이다.

 

 

 

 

파이썬을 학습하며 남기는 블로그입니다.

질문, 지적, 조언은 항상 환영합니다.

 

참고자료

[1] https://ko.wikipedia.org/wiki/Pip_(%ED%8C%A8%ED%82%A4%EC%A7%80_%EA%B4%80%EB%A6%AC%EC%9E%90), https://pip.pypa.io/en/stable/

[2] https://kaen2891.tistory.com/27

 

 

2020.04.06.

코리

 

 

 

 

 

 

Khaiii(Kakao Hangul Analyzer Ⅲ)는 카카오가 개발한 세번째 형태소 분석기이다.

 

공식자료는 깃헙에서 찾아볼 수 있다.(github.com/kakao/khaiii)

 

Khaiii는 C++14로 개발했기 때문에 이를 지원하는 컴파일러가 필요하다.

   - CentOS 7.4 : gcc-5.3.1 (devtoolset-4)

   - Ubuntu 16.04 : gcc-5.4.0

   - MacOS Mojave : LLVM-11.0.0

   - 공식적으로Window는 지원하지 않음

 

 

윈도우를 지원하지 않으므로, jupyter notebook에서 "!pip install khaiii" 라고 해도 실행되지 않는다.

 

윈도우에서 Khaiii를 설치하기 위한 첫번째 이야기는,

윈도우에 리눅스(Linux)의 일종인 우분투(ubuntu)를 설치하는 것이다.

 

 

 

 

 

▲  위는 동영상 

  아래는 글

 

 

 

 

우선 "제어판-windows 기능 켜기"에서 리눅스 기능을 켜주어야 한다.

체크되어 있지 않으면, 체크를 한다. 이 경우 컴퓨터 재시작이 필요하다.

 

 

 

MS Store에서 Linux를 검색한 후 왼쪽에 있는 ubuntu를 클릭하여 설치한다.

 

 

자, 이제 윈도우에서 카이를 설치하기 위한 첫 단계가 끝났다. 

 

다음 이야기는 방금 설치한 리눅스(ubuntu) 셋팅에 대한 이야기 이다. - 보러가기

 

 

파이썬을 학습하며 남기는 블로그입니다.

질문, 지적, 조언은 항상 환영합니다.

 

 

2020.04.06.

코리

 

 

 

 

로로나-19로 모두가 지쳐가고 있는 요즈음, 대구경북을 응원하는 현수막과 광고를 보고 조금씩 힘을 내고 있다.

 

그런 현수막 사이에 믿을 수 없는 현수막이 눈에 들어왔다.

 

"이기자 우한 폐렴"   I  ♥ 대구경북

 

실물은 다음과 같다.

 

 

① 경북 경산시 펜타힐즈로에 게시된 현수막

(촬영일시 : 2020.03.07. 오후4:02)

 

 

경북 경산시 펜타힐즈1로에 게시된 현수막

(촬영일시 : 2020.03.08. 오후1:58)

 

 

경북 경산시 경산사거리 게시된 현수막

(촬영일시 : 2020.03.10. 오전8:25)

 

 

①, ②, ③번 현수막이 게시된 위치

④번에도 동일한 현수막이 있었지만 그 현수막은 누군가에 의해 훼손되어 있었고, 얼마지나지 않아 사라졌다.

 

 

2020.03.12. 오후6시 경 확인 결과, ①번과 ②번 현수막은 사라지고 없었으며, ③번 현수막은 그대로 게시되어 있었다.

 

 

 

①번 현수막의 근접 사진은 다음과 같다.

 

 

 

"I ♥ 대구" 라는 문구의 왼쪽에 큰 공백이 있고, 그 공백에 "이기자! 우한 폐렴" 이라는 작은 현수막을 스테이플러 등으로 붙여 놓은 형태이다.

 

 

우리 나라의 정당이 저런 문구의 현수막을 제작한 목적를 이해할 수 없다.

그리고, 문제가 될만한 문구를 탈착형으로 제작한 이유도 이해할 수 없다.

판단은 이 글을 읽는 사람들의 몫이라 생각한다.

 

 

①번 현수막으로부터 약 20m 정도 떨어지 곳에 설치되어 있는 다른 정당의 현수막으로 마무리 한다.

 

 

 

 

혹시나 위 정당과 관련이 없는 것은 아닐까하는 의심에 더 찾아봤다.

자유공화당(우리공화당) 공식 카페에 위 현수막을 설치하는 모습의 게시글이 있다.

https://cafe.naver.com/kppmembers/56199

 

대구시민을 걱정하는 128개의 현수막

대경연합 동지님들 3일 동안 128개의 현수막을 개첩 하였습니다. 대구시당 동지님들께서도 ...

cafe.naver.com

자유공화당(우리공화당) 공식 홈페이지에는 다음과 같으 내용이 있다.

http://ourrepublicanparty.kr/bbs/zboard.php?id=public_data&no=12

 

http://ourrepublicanparty.kr/bbs/zboard.php?id=public_data&no=12

 

ourrepublicanparty.kr

 

 

2020.03.13. 코리.

 

 

사용 중인 노트북에 메모리(램, RAM)를 추가해보았다.

사용하던 노트북은 2018년 8월에 구입한 LG 울트라북(모델명 15UD480-GX50K)이다.

 

노트북 개봉기 보러가기 : https://corytips.tistory.com/99

 

 

사용 중이던 노트북의 성능 향상을 위해 메모리를 추가했다. i5 8세대에 8GB를 16GB로 업그레이드 하기 위함이다.

 

 

위 사진은 노트북에 기존에 꼽혀있던 하이닉스 메모리이고, 아래 사진은 새로 구입한 삼성 메모리이다.

기존 메모리는 "8GB 1Rx8 PC4-2400T -SA1-11"라고 적혀있는 DDR4 8BG 짜리 메모리이고, 제조사는 하이닉스이다.

새롭게 구입한 메모리는 같은 사양이며, 제조사는 삼성이다.

 

제조사가 달라서 호환이 안되면 어떡하나 걱정했는데, 별문제 없이 잘 작동한다.

 

조금 어이가 없었던 점은, 새 메모리를 샀는데 위 사진처럼 메모리가 요리용 호일에 싸여서 왔다는 점이다. 내 실수로 중고제품을 구입한게 아닌지 혼란스러웠다. 나중에 안 사실이지만, 메모리(램)는 새제품도 별도의 포장없이 호일에 싸서 판매된다고 한다. 호일에 싸는 이유는 정전기를 방지하기 위함이라고 들었다. 

 

 

 

위 사이트에서 구입했다. 네이버 페이가 가능해서 적립금을 사용하여 배송비(2,500원) 포함 32,000원 정도에 구입할 수 있었다. 배송은 하루 만에 받을 수 있었다. 

 

 

이제 노트북을 뜯을 시간이다. 볼트를 풀어준 후 틈에 벌려 커버를 분리했다.

 

 

 

사용 중인 노트북에는 메모리를 꼽을 수 있는 공간이 2개 있다. 위 빨간색 상자에서 왼쪽은 기존에 꼽혀있던 하이닉스 메모리이고, 오른쪽은 확장 슬롯이다.

 

그 오른쪽에 노란색 상자는 SSD이다.

노트북을 구입하고 DIY로 설치한 HDD는 왼쪽 아래에 잘 있었다. 

노트북 하드 드라이브 셀프 추가하기 : https://corytips.tistory.com/102

 

 

 

확장 슬롯에 새로 구입한 삼성 메모리를 꼽았다. 꼽는 방법은 쉽다.

두 번째 사진과 같이 메모리를 비스듬하게 꼽아준 후, 세 번째 사진과 같이 꾹 눌러주면 양 옆의 걸쇠가 걸린다. 매우 쉽게 설치할 수 있다.

 

 

 

짜잔! 메모리 확장이 끝났다. 이제 컴퓨터를 켜서 잘 인식하는지 확인해야 한다.

 

 

새로운 램을 꼽기 전에 설치된 메모리가 8GB이다.

 

 

 

램 확장을 끝낸 후 설치된 메모리가 16GB로 확인된다. 

노트북에 현질 했으니, 일 시켜야겠다.

 

 

 

 

 

아... 쉽지 않다.

 

파이썬도 힘든데, Khaiii를 사용하기 위해서 리눅스를 해야 한다니...

여차 저차 해서 윈도우에서 우분투도 깔고, 우분투에서 Khaiii도 설치했다.

 

Khaiii 테스트까지 잘했는데, 본격적으로 해보려고 했는데, 윈도우10의 파일을 우분투로 어떻게 옮기는지에서 막혔다.

윈도우 탐색기에서 파일을 복사해서 우분투 파일에 옮긴 후 jupyter notebook에서 파일을 열려고 하니 permission error(권한 문제)가 발생했다. 

 

 

csv로 바꿔서도 시도해봤고, "pd.read_excel('./data/Q3_sample.xlsx', engine='xlrd')" 이런 방법도 사용해봤는데 모두 권한 문제에서 자유롭지 못했다. 

 

원도우 탐색기를 이용해서 파일을 우분투 폴더로 옮기면 권한 문제가 생긴다는 것을 알게 되었다.

 

또다시 끝을 모를 검색이 시작되었다. 시도했다가 실패한 방법은 다음과 같다.

1. WinSCP 설치

  - 윈도우10에 WinSCP를 설치하고 우분투의 IP를 이용해서 접근하는 우분투로 접근한 후 파일을 전송하는 방법인데, 우분투 쪽에 방화벽 등과 관련된 설정이 필요한데, 잘 안돼서 실패했다.

 

2. 우분투에 크롬 설치 후 구글 드라이브로 직접 접근

  - 크롬은 성공적으로 설치했으나 터미널에서 크롬창 띄우는 것을 실패해서 포기했다.

# 크롬 드라이버 다운로드
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

sudo dpkg -i google-chrome-stable_current_amd64.deb
# 이렇게 하면 오류 발생
# error processing package google-chrome-stable (--install):
# dependency problems - leaving unconfigured

sudo apt-get install libappindicator1
# 다른 오류 발생
# E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

sudo apt-get -f install
# 우분투가 깡통이라 그런지 어마무시하게 설치함
# 0 upgraded, 158 newly installed, 0 to remove and 2 not upgraded.

sudo dpkg -i google-chrome-stable_current_amd64.deb
# 이제 됨

google-chrome
# 드디어!! 우분투에서 크롬을 띄울 수 있는것인가!!

# 에러발생... 그래 이렇게 쉬울리 없어...
# (google-chrome:3809): Gtk-WARNING **: 00:51:33.827: cannot open display:

xhost +si:localuser:root
xhost +si:localuser:userid
xhost +
# xhost:  unable to open display ""
# 모두 같은 에러 발생

# 안해 안해!!!!

 

3.  wget 으로 구글 드라이브 직접 접근

  - 이건 제일 처음 시도했었는데 실패해서 다른 방법들 해보다가 다시 wget으로 돌아옴

# wget 시도
wget https://drive.google.com/open?id=1dhNvuN이하생략

# 오오오! 다운로드 받았데!!
2020-01-06 00:06:54 (1021 KB/s) - ‘open?id=1dhNvuN_oBiqeWJU_pQxqHojz77kCkGnc’ saved [184119]

# 근데 다운로드된 파일이름이 왜 이따구야. 난 엑셀파일을 받으라고 했다고.
ls
'open?id=1dhNvuN이하생략'

# 안해. 안해!!

 

- 그런데, 돌고 돌아 다른 방법을 찾았다.

# 100MB 이하 파일을 구글 드라이브에서 우분투로 다운로드하는 새로운 방법
wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=공유ID' -O FILENAME

# 공유ID입력하고
# 마지막 FILENAME 자리에 우분투에 저장하고 싶은 파일 이름 입력

# 100BM 이상 파일인 경우(실제로 해보지는 않음)
wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILEID' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=FILEID" -O FILENAME && rm -rf /tmp/cookies.txt

 

 

 

 

야호! 드디어 성공이다.

고마워 Anjan 형! 

출처 : https://medium.com/@acpanjan/download-google-drive-files-using-wget-3c2c025a8b99?

 

2020.01.06. 코리

 

 

 

 

 

jupyter notebook DLL load failed 지정된 프로시저를 찾을 수 없습니다

 

 

파이썬을 3.6에서 3.7로 업그레이드하는 과정에서 seaborn import error가 발생하여 오랜 시간 동안 고생했다. 수많은 검색을 통해 아나콘다를 지우고 재설치하고를 반복하며 헤맸는데, 에러 메시지에 답이 있었다. 

 

아나콘다 재설치를 통해 파이썬 업그레이드(3.6 -> 3.7)를 시도했다. 모든 것이 잘 흘러갔지만, seaborn을 import하는 단계에서 import error를 마주하게 되었다. 에러 메시지는 항상 설렌다.

 

 

 

 

 

위와 같은 오류 메시지는 사라져서 다른 패키지(numpy, matplotlib 등)들과 seaborn을 함께 import해서 오류난 메지지가 아래와 같다.

ImportError                               Traceback (most recent call last)
<ipython-input-2-d2e7a3f2c9b4> in <module>
      2 import numpy as np
      3 import matplotlib.pyplot as plt
----> 4 import seaborn as sns
      5 get_ipython().run_line_magic('matplotlib', 'inline')

~\Anaconda3\lib\site-packages\seaborn\__init__.py in <module>
      4 
      5 # Import seaborn objects
----> 6 from .rcmod import *
      7 from .utils import *
      8 from .palettes import *

~\Anaconda3\lib\site-packages\seaborn\rcmod.py in <module>
      3 import functools
      4 import matplotlib as mpl
----> 5 from . import palettes, _orig_rc_params
      6 
      7 

~\Anaconda3\lib\site-packages\seaborn\palettes.py in <module>
     10 from .external.six.moves import range
     11 
---> 12 from .utils import desaturate, set_hls_values, get_color_cycle
     13 from .colors import xkcd_rgb, crayons
     14 

~\Anaconda3\lib\site-packages\seaborn\utils.py in <module>
      5 
      6 import numpy as np
----> 7 from scipy import stats
      8 import pandas as pd
      9 import matplotlib as mpl

~\Anaconda3\lib\site-packages\scipy\stats\__init__.py in <module>
    377 from __future__ import division, print_function, absolute_import
    378 
--> 379 from .stats import *
    380 from .distributions import *
    381 from .morestats import *

~\Anaconda3\lib\site-packages\scipy\stats\stats.py in <module>
    180 import scipy.special as special
    181 from scipy import linalg
--> 182 from . import distributions
    183 from . import mstats_basic
    184 from ._stats_mstats_common import (_find_repeats, linregress, theilslopes,

~\Anaconda3\lib\site-packages\scipy\stats\distributions.py in <module>
      8 from __future__ import division, print_function, absolute_import
      9 
---> 10 from ._distn_infrastructure import (entropy, rv_discrete, rv_continuous,
     11                                     rv_frozen)
     12 

~\Anaconda3\lib\site-packages\scipy\stats\_distn_infrastructure.py in <module>
     22 
     23 # for root finding for discrete distribution ppf, and max likelihood estimation
---> 24 from scipy import optimize
     25 
     26 # for functions of continuous distributions (e.g. moments, entropy, cdf)

~\Anaconda3\lib\site-packages\scipy\optimize\__init__.py in <module>
    389 
    390 from .optimize import *
--> 391 from ._minimize import *
    392 from ._root import *
    393 from ._root_scalar import *

~\Anaconda3\lib\site-packages\scipy\optimize\_minimize.py in <module>
     28 from ._trustregion_krylov import _minimize_trust_krylov
     29 from ._trustregion_exact import _minimize_trustregion_exact
---> 30 from ._trustregion_constr import _minimize_trustregion_constr
     31 
     32 # constrained minimization

~\Anaconda3\lib\site-packages\scipy\optimize\_trustregion_constr\__init__.py in <module>
      2 
      3 
----> 4 from .minimize_trustregion_constr import _minimize_trustregion_constr
      5 
      6 __all__ = ['_minimize_trustregion_constr']

~\Anaconda3\lib\site-packages\scipy\optimize\_trustregion_constr\minimize_trustregion_constr.py in <module>
      2 import time
      3 import numpy as np
----> 4 from scipy.sparse.linalg import LinearOperator
      5 from .._differentiable_functions import VectorFunction
      6 from .._constraints import (

~\Anaconda3\lib\site-packages\scipy\sparse\linalg\__init__.py in <module>
    114 from .dsolve import *
    115 from .interface import *
--> 116 from .eigen import *
    117 from .matfuncs import *
    118 from ._onenormest import *

~\Anaconda3\lib\site-packages\scipy\sparse\linalg\eigen\__init__.py in <module>
      9 from __future__ import division, print_function, absolute_import
     10 
---> 11 from .arpack import *
     12 from .lobpcg import *
     13 

~\Anaconda3\lib\site-packages\scipy\sparse\linalg\eigen\arpack\__init__.py in <module>
     20 from __future__ import division, print_function, absolute_import
     21 
---> 22 from .arpack import *

~\Anaconda3\lib\site-packages\scipy\sparse\linalg\eigen\arpack\arpack.py in <module>
     43 __all__ = ['eigs', 'eigsh', 'svds', 'ArpackError', 'ArpackNoConvergence']
     44 
---> 45 from . import _arpack
     46 import numpy as np
     47 import warnings

ImportError: DLL load failed: 지정된 프로시저를 찾을 수 없습니다.

 

구글과 stack overflow에 많은 검색을 해서 다음과 같은 솔루션을 발견했지만 모두 실패했다.

- 아나콘다 삭제 후 재설치

- 아나콘다 재설치 시 관리자 권한으로 실행

- 커맨드 창에서 seaborn 삭제 및 재설치 (conda로 하기, pip으로 하기)

- 환경변수에 path 추가하기

- 아나콘다 홈페이지에서 seaborn 검색해서 DLL 파일 다운로드 받아  내 컴에 복사하기

- 등등등

 

 

위 많은 방법들이 모두 실패했다.

 

한 가지 재미있는 이상한 현상은 내가 원하는 폴더에서 jupyter notebook을 실행하면 seaborn import error가 발생하는데, "시작 - Anaconda3 - Jupyter Notebook(Anaconda3)"를 관리자 권한으로 실행하면 seaborn import error가 나타나지 않았다. 그래서 권한 쪽 문제라고 생각하고 시간을 낭비했다.

 

 

해결방법은 numpy, scipy 삭제 후 재설치였다.

사실 위 import error 메시지를 잘 살펴보면 scipy에 뭔가 문제가 있음이 나타난다. 에러 메시지가 무슨 말인지 잘 모르겠지만 유난히 scipy 관련 내용이 많다.

 

---> 7 from scipy import stats
---> 24 from scipy import optimize
---> 4 from scipy.sparse.linalg import LinearOperator


scipy 재설치를 권장하는 솔루션을 제시한 사람이 numpy도 함께 해줄 것을 권장했다.

cmd 창에서 다음의 방법으로 numpy와 scipy를 삭제 및 재설치할 수 있다.

 

 

conda remove --force numpy, scipy
pip install numpy
pip install scipy

 

삭제할 때 --force 옵션의 역할은 다음과 같다. "Forces removal of a package without removing packages that depend on it. Using this option will usually leave your environment in a broken and inconsistent state"

 

-출처 : https://stackoverflow.com/questions/38459186/conda-uninstall-one-package-and-one-package-only

 

 

 

 

numpy와 scipy를 삭제하고 다시 설치 후 두근거리는 마음으로 seaborn을 import 해보았다.

 

 

성공했다. 고생했어. 토닥토닥. 

2020.01.05. 코리.

 

 

 

참고한 사이트

- https://stackoverflow.com/questions/54083514/how-to-fix-importerror-dll-load-failed-the-specified-procedure-could-not-be-f

- https://stackoverflow.com/questions/54957065/importerror-dll-load-failed-import-seaborn-failed-only-works-with-conda-ro

- https://stackoverflow.com/questions/55641510/seaborn-import-as-sns-importerror-dll-load-failed-the-specified-module-coul

- https://community.powerbi.com/t5/Desktop/Error-with-SEABORN/td-p/690652

+ Recent posts