본문 바로가기

개발

키움 Open API 개발환경 설정 방법 (Anaconda + VSCode)

키움 Open API와 대신 Creon에 대한 간단한 비교..

 

minsuksung-ai.tistory.com/21

 

[고민] 대신증권API과 키움증권 API 사이에서

 증권사 API를 사용한지 한달이 다 되가는데, 처음에는 키움증권API를 사용하는 예제가 많길래 키움증권으로 공부를 시작했습니다. 그러다가 선배의 권유로 대신증권 API도 사용해보기 시작했습

minsuksung-ai.tistory.com

 

나는 조건검색식을 쓸거라 키움 Open API를 사용하기로 했다.

 

키움 Open API를 이용하여 개발환경을 구성할 때의 주의점은 다음과 같다.

 

- 윈도우 32bit

- Python 32bit

- PyQt 5.15버전

 

2021년에 충격적인 사양이 아닐 수 없다.

최소사양 아니다. 저 사양이어야만 한다.

 

PyQt라는 걸 꼭 설치해줘야 하는데, 이유는 증권사에 로그인할 때

이 라이브러리에서 제공하는 함수가 꼭 필요하기 때문이다.

 

문제는 해당 함수는 PyQt 5.15버전 이후로 개인정보문제로 라이브러리 내에서 퇴출당했다. (현재 최신 버전은 6.0.1버전)

 

그런데 Windows 10 OS를 사용하면서 32bit로 전체 시스템을 다운그레이드 하고 싶지 않다면

보통은 32bit 가상환경을 만들어 사용하게 될 것이다.

문제는 이 가상환경을 만드는 데에 conda라는 프로그램을 사용하게 되는데

conda install 로 pyqt5를 설치하면 5.6부터 지원되기 때문에

가상환경 내에서 conda install 만으로 패키지를 설치하지 못하고 pip install을 또 써야하는 것이다.

 

큰 문제는 없을거같긴한데

굉장히 거슬리게 꼬여버린 호환성 문제가 존재한다.

 

 

불평은 이쯤하고

 

Step by step으로 키움 OpenAPI 환경설정방법을 설명하겠다.




1. Anaconda 설치

www.anaconda.com/products/individual

 

Anaconda | Individual Edition

Anaconda's open-source Individual Edition is the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com


2. Anaconda Navigator를 실행하여 Visual Studio Code 실행


3. VS Code 에서 Terminal - New Terminal

터미널에 아래 명령어를 입력하여 가상환경 생성

conda create -n py32_37						 // py32_37이라는 이름의 가상환경 생성
conda activate py32_37						 // 생성한 가상환경 활성화
conda config --env --set subdir win-32		 // Windows 32bit로 환경설정 변경
conda install python=3.7					 // 변경한 환경에 맞는 32 bit python 설치

 

 

 


 

혹시 이제는 지원되지 않는

set CONDA_FORCE_32BIT=1
conda create -n py32_37 python3.7 anaconda

을 이용하여 가상환경을 생성하신 분이 있다면,

 

굳이 삭제하지 말고 아래 명령을 입력한 뒤 4, 5번을 확인해보자. 안되면 가상환경 삭제하고 새로 ㄱㄱ

conda config --env --set subdir win-32
conda install python=3.7

 


4. 32bit 설치가 되었는지 확인

터미널에

conda info

를 입력하여 출력 문구에서 win-32를 확인한다.

platform : win-32인지 확인


5. 32bit 설치가 되었는지 확인(2)

터미널에

python

을 입력하여 32bit 파이썬인지 확인한다.

[MSC v.1916 32 bit (Intel)]을 확인한다.


6. pyqt5.15버전 설치

터미널에

pip install pyqt5

를 입력하여 5.15버전의 PyQt를 설치한다.

 


혹시 콘다로 설치하신 분?

conda install pyqt5

위 명령어 로 설치하신 분은, 삭제 후 pip로 다시 까시길.

conda uninstall pyqt5
pip install pyqt5

 

conda에는 5.6.0버전과 5.9.2버전밖에 없다.


7. 키움 로그인 화면 구동해보기

아래 코드가 구동되고 로그인창이 나타나면 성공적으로 개발환경을 갖춘 것이다.

from PyQt5.QtWidgets import *
from PyQt5.QAxContainer import *
from PyQt5.QtCore import *
import sys

class Kiwoom(QAxWidget):
    def __init__(self):
        super().__init__()
        self.setControl("KHOPENAPI.KHOpenAPICtrl.1")
        self.OnEventConnect.connect(self.errorHandler)
        self.dynamicCall("CommConnect()")
        self.login_event_loop = QEventLoop()
        self.login_event_loop.exec_()

    def errorHandler(self, errCode):
        pass

class Main():
  def __init__(self):
    self.app = QApplication(sys.argv)
    self.kiwoom = Kiwoom()
    self.app.exec_()

if __name__ == "__main__":
  Main()