INVESTAR / StockAnalysisInPython

452 stars 411 forks source link

5장 df = mk.get_daily_price('005930', '2017-07-10', '2018-06-30') 실행시 에러 발생 #152

Open denishong opened 2 years ago

denishong commented 2 years ago

아래와 같이 실행했을 때 에러가 발생하고 있는데요. SQLAlchemy를 설치해도 동일하게 발생을 하는데요. 확인 좀 부탁드립니다. from Investar import Analyzer mk=Analyzer.MarketDB() df = mk.get_daily_price('005930', '2017-07-10', '2018-06-30')

/home/denishong/.local/lib/python3.10/site-packages/pandas/io/sql.py:761: UserWarning: pandas only support SQLAlchemy connectable(engine/connection) ordatabase string URI or sqlite3 DBAPI2 connectionother DBAPI2 objects are not tested, please consider using SQLAlchemy warnings.warn(

INVESTAR commented 2 years ago

https://github.com/INVESTAR/StockAnalysisInPython/issues/126#issuecomment-1022728630 예전에 pip install SQLAlchemy로 해결된 경우가 있었다고 하는데 제 개인적인 생각으론 SQLAlchemy를 설치 안 해서 발생하는 문제는 아닌 것 같고요.

pip install pymysql 설치한 상태에서 아래 코드를 실행하셔서 마리아디비 버전 정보를 가져오는지부터 확인해 보시기 바랍니다.

# ch05_03_SelectVersion.py
import pymysql
connection = pymysql.connect(host='localhost', port=3306, db='INVESTAR', user='root', passwd='myPa$$word', autocommit=True)
cursor = connection.cursor()
cursor.execute("SELECT VERSION();")
result = cursor.fetchone()
print ("MariaDB version : {}".format(result))
connection.close()

만일 위의 코드도 동작을 안 한다면 파이썬, pandas, pymysql 최신 버전 간에 호환되지 않는 부분이 존재할 가능성이 있기 때문에 파이썬, pandas, pymysql의 버전을 책에서 제시한 버전으로 낮춰서 설치해 보시기를 권장해드립니다.

denishong commented 2 years ago

제가 코드를 제대로 파악하지 않고 에러가 발생해서 문의를 드렸습니다. 자세히 보니까 아래 기간의 data가 없어서 발생을 한거였고요. mariadb에 저장된 기간으로 조정하니까 잘 동작합니다. df = mk.get_daily_price('005930', '2017-07-10', '2018-06-30')

답변 주셔서 감사합니다.