오류 내용

cmd에서 python 명령어로 수행시 잘 수행되던 파이썬 파일이 부팅시 자동실행을 위해 systemd에 서비스로 등록하면 import 영역에서 ModuleNotFoundError: No module named 오류가 발생

Traceback (most recent call last):
  File "/home/ppa/dev/main.py", line 3, in <module>
    import clipboard
ModuleNotFoundError: No module named 'clipboard'

 

원인

해당 오류는 서비스를 수행시 root 계정으로 실행하는데, root에는 해당 모듈이 설치되어있지 않기 때문에 발생했다.

 

해결방법

1. module 설치시 root계정으로 설치

// 일반계정 설치
pip install clipboard

// root계정 설치
sudo pip install clipboard

 

2. 서비스를 특정 User로 수행

해당 서비스 파일의 [Service]에 User=[사용자이름] 추가

[Service]
...
User=aaaa
Type=idle
WorkingDirectory=/home/ppa/dev
...

 

참고

https://stackoverflow.com/questions/35641414/python-import-of-local-module-failing-when-run-as-systemd-systemctl-service