재테크/주식

[대신증권 API] API 연결

mikasaAck 2024. 12. 3. 01:18
728x90

배경

증권사 API를 통해서 주식 공부에 조금 더 관심을 가져 보고자 한다.

그러면 어느 증권사 API를 사용하면 좋을까? 대신증권, 키움증권 등 여러 개가 있다.

구글링을 해보니 대신증권 API 평이 좋아 보여서, 이번 포스팅에서는 관련 환경설정을 해보려고 합니다.

(파이썬, IDE 셋업은 생략한다. 나는 Conda를 설치했고, vs code tool을 사용하고 있다.)

 

Context

대신증권 API를 사용하기 위해서는 CYBOS Plus에 로그인 먼저 해야한다.

자세한 내용은 아래의 문서를 참고하기를 바란다.

https://wikidocs.net/3681

 

vs code를 관리자 모드에서 실행하고, 아래의 코드를 Run했다.

import win32com.client
instCpCybos = win32com.client.Dispatch("CpUtil.CpCybos")
print(instCpCybos.IsConnect)

 

terminal을 보면, 아래의 결과로 안된다. 왜 안될까?

더보기

Traceback (most recent call last):
  File "c:\ProgramData\anaconda3\Lib\site-packages\win32com\client\dynamic.py", litch
Traceback (most recent call last):
  File "c:\ProgramData\anaconda3\Lib\site-packages\win32com\client\dynamic.py", litch      s.com_error: (-2147221021, '작업을 사용할 수 없습니다.', None, None)
tch
    IDispatch = pythoncom.connect(IDispatch)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    IDispatch = pythoncom.connect(IDispatch)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pywintypes.com_error: (-2147221021, '작업을 사용할 수 없습니다.', None, None)

                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pywintypes.com_error: (-2147221021, '작업을 사용할 수 없습니다.', None, None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pywintypes.com_error: (-2147221021, '작업을 사용할 수 없습니다.', None, None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\Users\xxx\Documents\10_myProject\02_cybosPlusApi\test.py", line 2, n <mle "c:\ProgramData\anaconda3\Lib\site-packages\win32com\client\__init__.py", lodule>

During handling of the above exception, another exception occurred:
                                                                                 l
Traceback (most recent call last):                                               ^
  File "c:\Users\xxx\Documents\10_myProject\02_cybosPlusApi\test.py", line 2, i  dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch, userName, c
n <module>

During handling of the above exception, another exception occurred:              ^
                                                                                 
Traceback (most recent call last):
  File "c:\Users\xxx\Documents\10_myProject\02_cybosPlusApi\test.py", line 2 i,   dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch, userName,  in <module>
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\Users\xxx\Documents\10_myProject\02_cybosPlusApi\test.py", line 2, in <module>
    instCpCybos = win32com.client.Dispatch("CpUtil.CpCybos")
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\ProgramData\anaconda3\Lib\site-packages\win32com\client\__init__.py", line 117, in Dispatch
    dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch, userName, clsctx)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\ProgramData\anaconda3\Lib\site-packages\win32com\client\dynamic.py", line 106, in _GetGoodDispatchAndUserName
    return (_GetGoodDispatch(IDispatch, clsctx), userName)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\ProgramData\anaconda3\Lib\site-packages\win32com\client\dynamic.py", line 88, in _GetGoodDispatch     
    IDispatch = pythoncom.CoCreateInstance(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
pywintypes.com_error: (-2147221164, '클래스가 등록되지 않았습니다.', None, None)

구글링을 해보니 32bit 환경에서 해야한다고 한다.

찾아보니, conda에서 32bit 가상환경을 생성할 수 있다. GPT야 도와줘!!!

// 1. Conda 환경에서 32비트 강제 설치
conda create -n my32bitenv python=3.9 -c conda-forge --force-reinstall

// 2. conda에서 특정 가상환경 활성화
conda activate my32bitenv

// 3. 32bit인지 64bit인지 확인하는 방법
python -c "import platform; print(platform.architecture())"

 

32bit 가상환경을 활성화하고, 다시 vs code를 Run해봤으나 똑같이 안된다.

 

vs code의 경우, Select Interpreter에서 32bit 가상환경 설정한 것을 선택해줘야 한다!!!

그래야, vs code Run을 했을 때, 선택한 interpreter 환경에서 수행이 된다!!!

 

728x90
반응형