Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
Unable to lock directory /var/lib/apt/lists/

 

Error:

Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
Unable to lock directory /var/lib/apt/lists/

 

Reason:

이미 리눅스에서 다른 소프트웨어의 업데이트가 진행중일 때 강제로 다른 소프트웨어의 업데이트를 명령하면 생기는 오류이다.

 

Solution:

이전의 업데이트를 취소하거나 여의치 않을 경우 컴퓨터를 재부팅 한 뒤 업데이트 코드를 사용한다.

(필자는 sudo ubuntu-drivers autoinstall 코드 사용시 발생한 에러였음. 이때 자동으로 기본 소프트웨어를 업데이트 하던 중이라 재부팅 하고 바로 아무 작업도 하지 않은 채 코드를 적용하였더니 문제 해결!)

Failed to import 'pydot'. Please install 'pydot'. For example with 'pip install pydot'.

 

상황설명-

이 에러는 keras 혹은 의사결정나무(decision tree)에서 그래프를 그릴 때 사용하는 graphviz에 문제가 있을 때 발생합니다. 맥과 같은 linux os에서는 패키지가 깔리지 않았을 때, windows에서는 거의 무조건 발생하는 에러라고 보시면 됩니다. 사실 에러는 pydot자체적인 문제가 '아닙니다.' pip install pydot해도 오류는 해결이 되지 않아요.

 

해결법-

1) Mac과 같은 linux기반 OS + Anaconda

  (prompt)

  $ conda install graphviz

  [if needed]

  (coding tools)

  import os
  os.environ["PATH"] += os.pathsep + '~/opt/anaconda3/lib/site-packages/graphviz'

프롬프트에서 먼저 graphviz를 인스톨 해주시면 문제없이 돌아가는 경우가 많습니다. 그러나 설치한 뒤에도 계속해서 에러가 발생한다면 명시적으로 코드내에서 시스템 환경변수를 등록해주시면 됩니다.

 

2) Windows + Anaconda

  맥에 비해서 조금 복잡합니다.

  먼저 프롬프트에서

  $ pip install pydotplus

  를 입력하여 pydotplus를 설치해주십시오.

  이후
  https://graphviz.gitlab.io/_pages/Download/Download_windows.html
  홈페이지에 접속하여 OS에 맞는 graphviz설치 프로그램을 받아주신 뒤 설치하여 주십시오.(msi 확장자를 가진 파일로 다운로드 받아주시기 바랍니다.)

  만약 어떤 설정도 건드리지 않고 설치하였을 시 C드라이브 아래 Program Files (x86)경로에 깔릴 것입니다.

  이후
  import os
  os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'

  맥에서와 마찬가지로 코드 내에서 명시적으로 시스템 패스를 설정해주시면 됩니다.

  (실제 시스템 자체에서 패스 설정하는 방법이 있지만 복잡하여 코드 내 설정방법으로 설명드렸습니다.)

[Errno 2] No such file or directory: 'usr/bin/python': 'usr/bin/python'

/usr/bin/python: bad interpreter: No such file or directory

This error caused by no existence of simbolic link.

solution

ln -s /usr/bin/python2.7 /usr/bin/python
It makes simbolic link that command of python.

[python/pandas] read_csv에서 line contains NULL byte 에러

Error-

  Line contains NULL byte

 

원인-

  말 그대로 파일에 NULL 바이트가 섞여서 판다스에서 read_csv로 변환할 수 없다는 에러이다.

  보통 utf-16 인코딩 파일을 읽어오려할 때 발생한다.

 

해결법-

  가장 간단한 방법은 원본파일의 인코딩을 재설정하는 것이다.

  팁으로 가장 간단하게 메모장으로 열어서 인코딩만 바꿔 재 저장해주는 방법이 있다.

  리눅스에서는 

  $ iconv -c -f utf-16 -t utf-8 file.csv > file2.csv

  명령어를 통하여 인코딩을 바꿔줄 수 있다.

  이 경우 추가적으로 file separation을 제대로 못 잡아주는 경우가 생길 수 있다.

  이 경우엔 명시적으로 sep='\t'옵션을 주면 해결되는 경우가 대부분이다.

에러전문

RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more information on installing Python as a framework on Mac OS X. Please either reinstall Python as a framework, or try one of the other backends. If you are using (Ana)Conda please install python.app and replace the use of 'python' with 'pythonw'. See 'Working with Matplotlib on OSX' in the Matplotlib FAQ for more information.


원인

이 에러는 matplotlib 패키지에서 발생하는 에러입니다.

matplotlib에서 사용되는 backend가 제대로 설정되지 못하였기 때문에 발생합니다.



해결법

Mac의 터미널에서 이하의 명령어를 입력합니다.

echo "backend: TkAgg" >> ~/.matplotlib/matplotlibrc

아무 결과가 출력되지 않으면 제대로 된 것입니다.

이후에 다시 실행해보면 제대로 동작하는 것을 확인할 수 있습니다.

[R/Rstudio] dlookr 패키지 설치 후 Error: package or namespace load failed for ‘dlookr’ 발생 시 대처방안

 

R studio에서 dlookr 패키지를 설치하게 되면, 가끔씩 버전과 맥OS유무에 따라 Error: package or namespace load failed for ‘dlookr’에러를 뿜는 경우가 있다.

 

전체 에러는

Error: package or namespace load failed for ‘dlookr’:  .onLoad failed in loadNamespace() for 'tcltk', details:   call: fun(libname, pkgname)   error: X11 library is missing: install XQuartz from xquartz.macosforge.org

 

XQuartz

The XQuartz project is an open-source effort to develop a version of the X.Org X Window System that runs on OS X. Together with supporting libraries and applications, it forms the X11.app that Apple shipped with OS X versions 10.5 through 10.7. Quick Downl

www.xquartz.org

인데, 여기서 XQuartz의 X11 라이브러리가 문제가 있음을 알 수 있다.

 

이 에러의 경우 다른 R 패키지에서처럼 devtools를 통하여 깃헙에서 바로 설치하는 것으로 해결되는 에러가 아니다.

[install.packages("devtools");devtools::install_github("계정/레포이름")]

 

여기서 힌트는 블로그에 올라가게되며, 링크가 자동으로 생성된 저 사이트에서 찾을 수 있다.

 

실제로 저 사이트에 들어가게되면, 맥OS에서 실행가능한 dmg파일을 다운로드 받을 수 있으며, 이 dmg파일을 실행하여 설치하면 dlookr에러는 해결된다.

보통 인코딩을 모르는 미지의 파일을 파이썬의 open()함수를 통하여 열 시에 위와같은 오류가 종종 발생한다.

 

그 이유는 파이썬은 utf-8이 기본 인코딩인데, utf-8로 해당 문서를 열려고 했더니 문제가 발생했다는 것이다.

 

이때는 open()함수의 encoding 파라미터를 통하여 인코딩 방식을 다른 방법으로 지정해 주면 파일이 열린다.

 

보통 윈도우에서 작성하거나 웹에서 긁어온 문서는 'euc-kr' 혹은 'cp949'로 대부분 해결이 된다.

 

가끔 해외에서 작성된 문서의 경우 'latin_1'인코딩도 종종 보인다.

 

즉, open("file.name", "r", encoding='euc-kr')의 식이다.

 

그러나 저 두가지 인코딩을 사용하였는데도 제대로 작동이 안되는 경우에는 인터넷에서 직접 인코딩 방식을 찾아 보아야 한다.

 

파일 인코딩 알아보기

 

파일 인코딩 확인법(How to find out file encoding)

GNU 시스템 하에서는 해당 폴더로 이동한 후에 file * 혹은 file --mime-encoding * 을 명령줄에 쳐주면 인코딩 방식이 나온다. 윈도우에서는 git bash를 깔면 gnu시스템을 이용할 수 있으므로 위와같이 해주면 되..

omnil.tistory.com

 

그런데 이 방식을 활용하여도, 인코딩은 저렇게 해놓고, 실제 내부에서 인코딩된 문서가 쓰인 방식이 다를 수 있다.

(가령 저 인코딩 방식으로 파일이 열리는데도 그 안에서도 파일이 깨져보이는 경우)

 

그때는... 답 없이 경험에 의지해서 여러 인코딩 방식을 시험해보는 수밖에 없다.

그것이 바로 위에서 말했던 latin_1, euc-kr, cp949등 이다.

 

더욱 많은 인코딩 방식은 파이썬의 공식 도큐멘테이션에 2/3 지점에 나와있다.

만일 해당 국가가 한국이 아니라 중국, 대만, 일본 등이면 그에 맞는 인코딩 방식을 하나하나 시험해보는 수 밖에 없다.

1) which pip를 커맨드 라인에 치면 pip의 위치가 나옵니다. [/usr/bin/pip]

    보통 이 pip 위치에서 하면 되는데 가끔 전혀 다른 곳에서 pip가 문제가 되는 경우 상단의 에러메시지와 함께 어떤 위치에서 발생하였는지 나오기 때문에 그 위치의 pip 파일을 수정해 주시면 됩니다.

2) sudo nano pip라고 치시면 nano editor가 작동하며 파일이 열립니다. vim으로 작성하셔도 크게 문제 없습니다.

3) 파일을 열면
from pip import main 
if __name__ == '__main__': 
     sys.exit(main())

 

이렇게 나와 있을 것인데, 이것을

import sys 
from pip import __main__ 
if __name__ == '__main__': 
     sys.exit(__main__._main())

 

로 바꿔주시고, ctrl+o를 눌러서 저장한다고 하시고 엔터 치신 뒤 ctrl+x로 빠져나오시면 됩니다.

그리고 이후에 pip이용시에는 문제가 되지 않을 것입니다.

+ Recent posts