VScode에서 Python Path 경고 메세지 해결하기

어느때 부터인가 VScode에서 Python 프로젝트나 파일을 로딩하면 경고 창이 뜨기 시작해서 귀찮았습니다.

저는 Python 작업은 PyCharm으로 많이 하니까 계속 무시했었지만 너무 거리적 거려서 처치했습니다.

메세지를 해석하면 환경변수”Path”안에 따옴표가 포함되어서 Python 확장이 로딩안되니까 따옴표를 제거해달라는 말입니다.

중요한 부분을 먼저 말하자면
Mac, Linux는 시키는대로 하면 금방 처리할 수 있는데
Windows는 Path에서 따옴표와 세미콜론을 모두 제거해주면 됩니다.

경고 메세지 내용

The environment variable 'Path' seems to have some paths containing the '"' character. The existence of such a character is known to have caused the Python extension to not load. If the extension fails to load please modify your paths to remove this '"' character.

Mac 또는 Linux

환경변수가 정의된 리소스 파일을 열어서 따옴표를 제거하시면 됩니다.

Windows

Windows가 문제입니다. 오류를 잘 못찾을 수 있는데.

설정에서 환경변수를 열고 사용자와 시스템의 Path를 열어서 자세히 보신 후에 따옴표와 세미콜론이 있는 것을 모두 찾아서 제거해주세요. 특히 따옴표가 없다고 방심하지 말고 세미콜론도 반드시 제거해 주세요.

환경변수창 열기

Path가 2곳에 있습니다. 모두 확인해 주세요.

환경변수의 목록 확인

환경변수 목록을 쭉 보시고 따옴표와 세미콜론이 있으면 모두 제거하세요.

끝입니다.

Ubuntu에 RethinkDB 설치하기

RethinkDB는 NoSQL입니다. document storage 계열입니다.

MongoDB와 비슷한 것입니다.

개발 또는 데이터분석을 하다보면 RDBMS를 쓰는 것이 부담스럽고 조금편하고 가벼운 것을 사용하고 싶을때가 있습니다. 그럴 때 RethinkDB나 MongoDB는 그럴 때 쓸 수 있는 좋은 대안입니다.

우분투(Ubuntu)에서 apt로 rethinkdb를 설치하기 위해서 레파지토리를 등록해줘야 합니다.

이렇게 하면 됩니다. 아래의 4줄을 차례로 실행해서 rethinkdb를 설치하세요.

source /etc/lsb-release && echo "deb https://download.rethinkdb.com/repository/ubuntu-$DISTRIB_CODENAME $DISTRIB_CODENAME main" | sudo tee /etc/apt/sources.list.d/rethinkdb.list
wget -qO- https://download.rethinkdb.com/repository/raw/pubkey.gpg | sudo apt-key add -
sudo apt-get update
sudo apt-get install rethinkdb

2021년 7월 이전에 위와 같은 방법으로 설치를 했는데 업그레이드를 하려면 다음의 명령어로 키를 갱신한 후에 다시 설치하면 된다고 합니다.

wget -qO- https://download.rethinkdb.com/repository/raw/pubkey.gpg | sudo apt-key add -v -

원문은 https://rethinkdb.com/docs/install/ubuntu/ 입니다.

이 글은 여기까지입니다. 질문, 오류 지적은 언제나 환영입니다. 😐

supervisor로 daemonize하기

Linux를 사용하다면 보면 프로세스를 데모나이즈(daemonize)해야 하는 일이 생깁니다.

작성한 스크립트나 실행파일 등을 대몬으로 돌려야 하는 경우를 말하는 것입니다.

데몬은 백그라운드로 실행하고 세션을 종료해도 멈추지 않고 계속 작동하는 프로세스를 말합니다.

프로세스 –> 백그라운드 –> 코맨드를 따로 줄때까지 안죽음

일반 프로그램을 위와 같이 만들어 주는 것을 대모나이즈라고 합니다.

데모나이즈 몇가지 방법

데모나이즈는 보통 shell script를 하나 작성해서 실행, 종료를 하게 만듭니다. 이때 대몬이 되는 프로세스가 pid 파일을 만들도록 해야 하고 종료시킬 때 pid를 찾아서 종료하고 재실행하고 하는 것들을 만들어줘야 합니다.

이게 해보면 매우 귀찮은 일입니다.

init.d 스크립트를 만들기

inin.d 스크립트를 작성하는 것은 학습 장벽이 있습니다.
이 글에서는 설명하지 않습니다.

systemd를 사용하기

systemd를 사용해서 간단한 설정 코드를 작성하면 쉽게 대모나이즈 할 수 있습니다만 systemd가 없는 환경도 있습니다.
역시 이 글에서는 설명하지 않습니다.

supervisord를 사용하기

supervisord는 python으로 만든 프로세스를 대모나이즈 해주는 유틸리티입니다.
이 글에서 설명하려고 하는 것입니다.

supervisord 설치하기

supervisord는 두가지 방법으로 설치할 수 있습니다.

apt를 이용해서 설치
apt install supervisor

조금 낮은 버전이 설치될 수 있습니다. 버전에 따라서 버그가 있어서 문제가 있을 수 있습니다.

python pip를 이용해서 설치

python으로 제작했기 때문에 pip로 설치가 가능합니다.

sudo pip3 install supervisor

이렇게 설치하면 supervisor의 설치된 경로가 apt로 설치했을 때와 다르고 초기 설정 파일이 없거나 하는 문제가 있을 수 있지만 최신 버전이 설치되는 장점이 있습니다.

설치되는 경로는 이렇습니다.

/usr/local/bin/supervisord

설정 파일 경로

설정 파일의 경로는 아래의 디렉토리이고 이 디렉토리에 형식을 맞춰서 파일을 작성해주면 됩니다.
여러 개 만들어서 넣을 수 있습니다.

/etc/supervisor/conf.d

다음 내용은 supervisord를 사용한 대모나이즈 설정의 예입니다.

jupyterhub를 대모나이즈 하는 설정입니다.

[program:jupyterhub]
user=root
command=/usr/bin/python3.8 -m jupyterhub --no-ssl -f /etc/jupyterhub/jupyterhub_config.py
directory=/srv/jupyterhub
autostart=true
autorestart=true
startretries=3
exitcodes=0,2
stopsignal=TERM
redirect_stderr=true
stdout_logfile=/var/log/jupyterhub.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB

사용할 때 몇가지 삽질을 방지하기 위한 요령이 있지만 이 글에서는 생략하겠습니다. 글이 너무 길어집니다.

여기까지입니다. 질문, 오류 지적은 언제나 환영입니다.

워드프레스에서 “업로드한 파일은 php.ini의 upload_max_filesize에 지정한 크기를 초과하였습니다.” 오류

워드프레스에서 업로드를 할 때 파일이 업로드 할 파일의 사이즈가 크면 다음과 같은 에러 메세지가 나오는 것을 볼 수 있습니다.

업로드한 파일은 php.ini의 upload_max_filesize에 지정한 크기를 초과하였습니다.

당연한 것이지만 워드프레스의 문제가 아니라 PHP설정의 문제입니다. PHP 설정에는 업로드할 파일의 사이즈가 기본 2Mb로 제한되어 있습니다. 이 설정을 변경해 주어야 합니다.

R로 블로그 만들기 – blogdown

blogdown 패키지를 이용해서 돈들이지 않고 블로그 사이트를 만드는 것을 소개합니다. 매우 쉽습니다.

배경 소개

Reproducible Research (재현가능 연구)라는 것이 대두되면서 기술 문서를 공개할 때 소스코드, 문서자체의 원본, 데이터까지 제공해서 누구나 검증할 수 있게 투명하게 하는 것이 시작되었습니다.

이것은 거창하게 말하면 기술, 연구의 윤리와도 관련이 있지만 여기서 자세히 설명하지는 않을께요.

R로 블로그 또는 위키를 만드는 것은 오래된 유행입니다. 하지만 여전히 많은 사람들이 데이터과학 블로그, 데이터분석 블로그, 과학 기술 블로그를 R로 작성하고 있습니다.

처음에는 Jekyll과 같은 연동형 툴이 유행했지만 지금은 R과 Rstudio만을 이용해서 블로그를 생성하고 배포하는 방식으로 발전했습니다.

간단한 개념 설명

한줄 요약

blogdown 패키지를 사용하면 스태틱 블로그를 생성해서 무료로 github에 블로그 사이트를 만들 수 있습니다.

세줄 요약

  • Blogdonw을 사용하면 Rmarkdown (Markdown + R의 코드연동 지원)으로 작성된 문서로 쉽게 블로그, 위키 등을 만들 수 있습니다.
  • workdpress나 dokuwiki, tistory 같은 백엔드가 따로 더 필요한 방식이 아니고 html 파일을 생성한 뒤에 그 결과물을 배포합니다. 이것을 스태틱 블로그(static blog)라고 합니다.
  • 스태픽 블로그는 github에서 지원하는 웹서비스를 사용해서 {자기의 githubid}.github.io 와 같은 도메인으로 무료로 블로그를 서비스할 수 있습니다. 그리고 도메인을 별도로 구매하면 github에 도메인을 붙여서 서비스할 수 있습니다. https://r-visualization.com 도 그렇게 제공하고 있는 것입니다.

순서 설명

  1. Rstudio를 실행한 뒤에 blogdown을 설치합니다. 이미 설치되었으면 통과.
  2. Blogdown 프로젝트를 하나 생성합니다. 생성할 때 테마를 선택해야 하는데 기본 테마를 사용해도 되고 테마를 고르고 시작해도 됩니다.
  3. 프로젝트가 생성되면서 파일이 몇개 생성됩니다. 수정, 추가를 해서 블로그의 내용물을 채웁니다.
  4. Rstudio의 Addons 메뉴를 눌러서 “Serve Site”를 선택하면 “Viewer”창에 생성된 블로그가 보입니다.
  5. 생성된 파일중에 index.html을 웹브라우저로 열어도 됩니다.

순서 설명 스크린샷

그림보고 따라 하시면 되요.

패키지 설치

install.packages("blogdown")

새 프로젝트 만들기

프로젝트 종류에서 “Website using Blogdown”을 선택

디렉토리 이름과 프로젝트 이름 입력

index.Rmd 파일과 content 폴더가 생긴것을 확인

Addons에서 Serve Site를 선택해서 사이트 빌드

내용 수정해서 블로그 완성하기

테마

blogdown은 hugo의 테마를 이용합니다. 아래 사이트를 방문해서 테마를 고르면 됩니다. 예쁜 것 많습니다.

프로젝트를 생성할 때 선택할 수도 있고 다운로드 받은 후에 theme 폴더에 넣고 설정을 변경해주면 됩니다.

https://themes.gohugo.io/