MINERVA/Python 2023. 8. 20. 19:13
반응형

pip 업데이트를 진행시, 위와 같은 경고(warning)을 보게되는 경우가 있습니다.

개발을 진행하는 데는 문제가 없지만, 기분이 깔끔하지 않기에 아래와 같은 경고 메시지가 보였을때는 아래와 같이 처리하 처리하면 됩니다.

발생원인은 업데이트를 진행하는 디렉토리에 먼가 이상한, 유효한지 않은(invalid) 내용이 있기 때문입니다.

그래서 경고가 발생한 패키지의 디렉토리를 확인해보면, 이상한 디렉토리가 존재하는 것을 확인 할수 있습니다.

임시디렉토리(~)가 생긴 원인은 이전에 업데이트를 진행하면서 실패하였을때 생긴것으로 추정됩니다.

일단 위의 임시디렉토리(~)를 모두 지워주세요.

 

그리고, 다시 업데이트 진행하여주시면 경고문 없이 진행되는 것을 확인하실수 있습니다.

 

 

감사합니다.

반응형
posted by choiwonwoo
:
MINERVA/Python 2023. 8. 20. 18:56
반응형

주기적으로 프로젝트 파이썬 패키지를 일괄 업데이트를 하는데, 갑자기(?) 아래와 같이 pip가 또(?) 말썽을 부리네요. 

왜 이게 발생하는지 정확히는 모르겠지만, 발생하는 몇가지 패턴(?)은 있는것 같다.

 

그래도 일단은 일이 급하니 위와 같은 에러 발생시 해결하는 방법을 간단히 정리하자 합니다.

 

해결방법은 아래와 같습니다.

>> python -m ensurepip

 

 

반응형
posted by choiwonwoo
:
MINERVA/Python 2023. 4. 28. 12:35
반응형

공휴일과 대체 공휴일 확인을 위해서, nework API를 통해서 확인하는 부분을 정적으로 전환(이유: 방화벽과 속도 문제등)

 

import time
import datetime
from pytimekr import pytimekr

# alternative holiday: 대체휴일
alterHolidayList = ['20230124','20230501','20230529']

# 주말(weekend) & 연휴(holiday) & 대체휴일(alterHolidayList)
def CheckOffDay(d):
    holidayList = pytimekr.holidays()
    bHoliday = holidayList.__contains__(d)
    bWeekday = d.weekday() > 4
    strCheckDay = d.strftime('%Y%m%d')
    bAlterday = alterHolidayList.__contains__(strCheckDay)
    return(bWeekday or bHoliday or bAlterday)

# working day를 구해서 list로 반환
def GetWorkingDay(strBaseDay,nWorkingDay = 1):  # 1은 당일 하루를 의미
    nWorkingDayList = []

    # string -> datatime
    dtBaseDay = datetime.datetime.strptime(strBaseDay, '%Y%m%d')
    print(dtBaseDay)
    print(dtBaseDay.date())

    for day in range(0,nWorkingDay):

        while CheckOffDay(dtBaseDay.date()):
            dtBaseDay = dtBaseDay - datetime.timedelta(days=1)

        nWorkingDayList.append(dtBaseDay.strftime('%Y%m%d'))
        dtBaseDay = dtBaseDay - datetime.timedelta(days=1)

    return nWorkingDayList
if __name__ == '__main__':

    strBaseDay  = '20230505'    # 보통 오늘 기준으로 시총, 상장주식수등 고려
    nWorkingDay = 6             # 오늘 포험, 실제 일하는 날만

    dayList = GetWorkingDay(strBaseDay,nWorkingDay)
    print(dayList)

라이브 코드에서, 해당 기능 단위 테스트 코드부분을 발취

 

[실행결과]

['20230504', '20230503', '20230502', '20230428', '20230427', '20230426']

반응형
posted by choiwonwoo
: