- 파이썬 소스코드를 이용한 프로젝트를 경험해보진 못해서 자세한 레이아웃이나 명령어 사용법을 구체적으로 모른다.
- 그래도 최근 각광받고 있는 생성형 AI에게 원하는 소스코드를 질문하면 잘 구성해 주는 편이라 적절히 이용하고 있다.
- 그래서 만든 소스코드가 있는데, 구글 캘린더의 개인 일정을 읽어오라고 했더니 iCal 링크로 잘 읽어왔다.
-이부분을 라즈베리파이에 적용해서 라즈베리파이가 부팅할때 자동으로 실행하게 했더니 icalendar 모듈을 읽어오지 못하면서 실행이되지 않는다. 터미널을 열고 커맨드 모드에서 실행시키면 잘 작동하는데 왜 이럴까?
-chatGPT에게 물어보면 모듈을 새로 설치하라고 하면서 이런저런 도움을 주기는 하는데 잘 안풀린다.
-조금더 구체적으로 물었어야 하는데, 잘 안되었나보다.
-결국 라즈베리파이가 부팅할때 넣어둔 쉘프로그램에 sudo python *****.py로 시작하는것이 문제였다.
-일반 유저로 python *****.py라고 실행하는 것과는 차이가 있다.
-일반적으로 root 계정과 pi 계정은 다른 site-packages 디렉토리를 사용하므로 sudo를 붙여 root 계정에서도 icalendar를 설치해야 합니다. 라고 chatGPT가 다시 알려준다.
- 그래서 sudo python3 -m pip install icalendar 이렇게 모듈을 다시 설치하고 부팅시키니 잘 작동한다.
-일반계정으로 소스코드를 만들어서 실행할 때와 부팅시 root권한으로 실행할 때 실행이 안될 수 있다는것을 기억해야 겠다.
-그런데, 최신버전의 라즈비안OS는 파이썬 프로젝트별로 가상화를 이용할 것을 추천한다.
이러한 상황에서 위에 적어둔 root계정에서의 설치시
error: externally-managed-environment 이러한 에러를 내면서 설치해주지 않을때가 있다.
- 그럴땐,
sudo rm /usr/lib/python3.11/EXTERNALLY-MANAGED
이렇게 입력하고 앞서 정리한 방식으로 모듈을 설치하면 이상없이 설치되고 작동한다.