Language/Python 4

[Python] 모듈이 있는데 No module named XXX 에러가 뜰때 점검사항

어제 오후에 있었던 일이다. 'docker'라는 디렉터리 하위에 있는 'Client' 모듈을 import해야하는 상황이었다. import Client from docker 위와 같은 형식으로 모둘을 import하는 과정에서, 내가 구성한 docker라는 디렉터리 내에 Client모듈이 있었음에도 불구하고, "No module named XXX" 에러가 발생하게 되었다 그 원인은 python의 sys.path경로에 여러 디렉터리가 잡혀있었는데, 그중 다른 경로의 docker 디렉터리를 가져와놓고서는, 'Client'모듈이 없다고 에러를 뱉은 것이다. 예를들어, [ /tmp/dir_A/docker ] temp.py [ /tmp/dir_B/docker ] Client.py 위와 같이 두 디렉터리가 있고, sy..

Language/Python 2021.11.23

[Python] sys.path에 관해

파이썬의 sys.path는 모듈을 import할 때 모듈을 찾아야 할 경로들을 저장해둔 list이다. 예를 들어 sys.path가 ['dir_A', 'dir_B', 'dir_C'] 라고 가정했을때, import client이라는 코드를 만나면 Python은 먼저 dir_A 디렉터리 내에서 client 모듈을 찾는다. 찾으면 import를 하고, 없으면 dir_B, dir_C를 검색해보고, 그래도 없으면 ModuleNotFoundError 예외를 발생시킨다. sys.path는 언제 만들어질까? - 먼저 최초 실행된 Python 스크립트가 위치한 디렉토리를 더한다. 이때 interactive shell(python or python3)으로 실행된 경우는 ''(빈 스트링)을 사용한다. - 환경 변수중 PYTH..

Language/Python 2021.11.23

파이썬 FCM연동, 앱으로 푸시알림 보내기

커맨드에서 pyfcm 라이브러리를 설치해준다. pip install pyfcm 서버 API Key를 확인하기 위해 firebase console에 접속해준다. 상단 '클라우드 메시징' 탭에서 서버 키를 확인한다. 아래는 python 코드이다. 'APIKEY' 변수에 확인한 서버 키를 넣어주고, TOKEN에는 보내고자 하는 기기의 토큰값을 넣어준다. from pyfcm import FCMNotification APIKEY = "YOUR_SERVER_API_KEY" TOKEN = "YOUR_TOKEN" # 파이어베이스 콘솔에서 얻어 온 서버 키를 넣어 준다 push_service = FCMNotification(APIKEY) def sendMessage(body, title): # 토큰값을 이용해 1명에게 ..

Language/Python 2021.10.29

파이썬 pip 패키지 다운그레이드

1. 개요 업비트에서 제공하는 웹소켓을 이용해서 실시간 가상화폐 정보를 조회하는 기능을 구현하는 중에, pyupbit모듈이 필요로 하는 websockets 모듈의 버전이 높아 웹소켓 연결이 안되는 문제가 발생했다. websockets 로컬 버전: 9.1 (정상 작동) websockets 서버 버전: 10.0 (작동 X) (base) PS C:\Users\Administrator> pip show websockets Name: websockets Version: 10.0 Summary: An implementation of the WebSocket Protocol (RFC 6455 & 7692) Home-page: https://github.com/aaugustin/websockets Author: Aym..

Language/Python 2021.10.19
반응형