전체 글 208

[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

(@angular/material/dialog) MatDialogRef에 관해

로드할 컴포넌트와 선택적인 config object를 파라미터로 주어 open 메서드를 호출하면 다이얼로그가 열린다. 이 open 메서드는 MatDialogRef의 인스턴스로 반환된다. let dialogRef = dialog.open(UserProfileComponent, { height: '400px', width: '600px', }); MatDialogRef는 열린 다이얼로그를 조작할 수 있게 제공한다. 이는 dialog를 닫고 다이얼로그가 닫혔을때 알림을 받을수 있도록 사용할 수 있다. 모든 알림 Observables는 다이얼로그가 닫힐때 발생된다. dialogRef.afterClosed().subscribe(result => { console.log(`Dialog result: ${result..

[Angular] EventEmitter에 관해

1. EventEmitter란? @angular/core EventEmitter @Output 디렉티브와 함께 컴포넌트 내에서 사용하여 사용자 정의 이벤트를 동기식 또는 비동기식으로 내보내는 역할을 하고, 해당 인스턴스를 구독하여 해당 이벤트에 대한 핸들러를 등록한다. class EventEmitter extends Subject { constructor(isAsync?: boolean): EventEmitter emit(value?: T): void subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription } 2. 사용 예제 먼저, 아래와 같이 "processStart", "..

Git Private repository clone시 not found 문제

로컬에서 Git Private repository의 소스를 clone 받을때 위와 같이 "Repository not found." 에러가 날 경우, 해결 방법은 다음과 같이 Git clone URL에 해당 Repository에 소속되어 있는 유저의 이름을 "github.com" 앞에 추가해주면 된다. git clone https://[USER_NAME]@github.com/~~~.git 추가로, 알맞은 git clone URL임에도 불구하고 아래와 같이 에러가 날 경우, copy & paste 시에 문자가 올바른 인코딩 형태로 입력되지 않을 수 있으니, 해당 URL을 직접 타이핑 쳐 입력하면 해결 될 수 있다.

Git 2021.11.13

이미 Git repository와 연동된 프로젝트에 Git remote add

아래 명령어로 이미 연동된 Git url을 확인할 수 있다. git remote -v 아래와 같이 Git push URL을 추가해 준다. git remote set-url --add --push origin [GIT_REPOSITORY_URL] 추가해준 뒤 다시 'git remote -v' 명령어로 remote URL을 조회한다. 만일, 추가해준 URL을 지우기 위해서는 아래와 같이 입력해준다. git remote set-url --delete --push origin [GIT_REPOSITORY_URL] git remote에 관한 명령어 도움말은 아래와 같다.

Git 2021.11.02

파이썬 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

쿠버네티스(Kubernetes) 에 대해

1. 쿠버네티스란? Kubernetes, 쿠버네티스, 또는 간단히 "큐브(kube)"는 Linux 컨테이너 작업을 자동화하는 오픈소스 플랫폼이다. 쿠버네티스는 컨테이너화 된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한 오픈소스 플랫폼으로, 선언적 구성과 자동화를 모두 지원한다. 즉, Linux 컨테이너를 실행하는 호스트 그룹을 함께 클러스터링 할 수 있으며 쿠버네티스를 통해 이러한 클러스터를 쉽고 효율적으로 관리할 수 있습니다. 이 클러스터는 퍼블릭 클라우드, 프라이빗 클라우드 또는 하이브리드 클라우드 전체로 호스트를 확장할 수 있습니다. 일반적으로 컨테이너 방식의 배포는 다음과 같은 추가적인 장점을 제공해 인기가 있다고 알려져 있다. 빠른 생성과 배포: VM 이미지를 사용하는 것에 ..

Server/Kubernetes 2021.08.12
반응형