본문 바로가기

Python

(69)
RuntimeError: The current Numpy installation fails to pass a sanity check due to a bug in the windows runtime. 오늘 (2020년 11월 10일) windows 10 운영체제 vscode 에서 pip 로 여러 패키지들을 최신으로 업데이트 한 후에 파이썬 스크립트를 실행하여 보았는데, 갑자기 이상한 에러가 뜨면서 실행이 되지 않았다. 스크립트는 다른 시스템에서 얼마전까지 잘 돌던 것이었다. 에러메시지는 다음과 같다. (env3864) C:\WORK\github\mememe\myappp> cd c:\WORK\github\mememe\myappp && cmd /C "c:\WORK\github\mememe\myappp\env3864\Scripts\python.exe c:\Users\Meme\.vscode\extensions\ms-python.python-2020.10.332292344\pythonFiles\lib\pyth..
[Anaconda] ImportError: DLL load failed while importing _multiarray_umath: 지정된 모듈을 찾을 수 없습니다. anaconda3 를 윈도우에 설치하고, import numpy, import pandas 를 입력했으나 ImportError: DLL load failed while importing _multiarray_umath: 지정된 모듈을 찾을 수 없습니다. 와 같은 에러가 발생했다. 전제 에러메시지는 다음과 같다. C:\ProgramData\Anaconda3>python Python 3.8.5 (default, Sep 3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32 Warning: This Python interpreter is in a conda environment, but the environment has not bee..
한글을 포함한 문자열을 너비를 지정하여 포매팅할 때의 문제 >>> l = [ '김철수', 'Meggy', '이용' ] >>> names = [ '김철수', 'Meggy', '이용' ] >>> nums = [ 33, 23, 145 ] >>> for name, num in zip(names, nums): print("%-10s %10s %10s"%(name, num, name)) 김철수 33 김철수 Meggy 23 Meggy 이용 145 이용 한글이 포함된 경우에는 너비를 지정하는 문자열 포매팅이 잘 맞지 않는다. 이는 한글, 일본어 가나, 중국어 한자 등의 폭이 영문문자의 2배라는 점을 기본 문자열 포매팅이 고려하지 않고, 한글자는 무조건 한칸으로 생각하기 때문에 발생하는 문제이다. (영문 한칸의 너비만 차지하는 반각문자도 있지만, 간단한 설명을 위해 넘어갑시다...
Anaconda 의 기존 가상환경을 클론하여 새로운 가상환경을 만들기 Anaconda 의 기존 가상환경을 클론하여 새로운 가상환경을 만들기 서버에 이미 생성되어 있는 기존의 가상환경을 변경하지 않고, 약간의 패키지를 변경하여 테스트하고 싶었다. 이런 때에는 아나콘다에서 제공하는 clone 옵션으로 가상환경을 클론(복제)하고, 복제한 가상환경에서 패키지를 변경하여 테스트 해 볼 수 있다. 기존의 tensorflow2_p36 가상환경의 패키지 설정을 복제하여, tf2_p36_dw 가상환경을 만든다. 새롭게 만들어진 가상환경은 기존의 가상환경과 동일한 패키지가 설치되게 된다. conda create --name tf2_p36_dw --clone tensorflow2_p36 이후 source activate tf2_p36_dw 명령으로 가상환경에 진입하고, conda instal..
'python'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 파이썬을 처음 배우는 초보자들이 윈도우에서 파이썬 스크립트를 실행하려고 할 때 제목과 같은 에러 메시지가 나올 때가 있다. c:\Users\me>python hello.py `python`은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. python 설치 디렉토리가 실행파일들을 찾는 PATH 환경변수에 포함되지 않아서 발생하는 에러이다. 이 문제를 해결하기 위해선 다음과 같은 방법이 있다. 한가지 방법은 파이썬을 지우고 다시 설치하면서 설치 중에 환경변수 추가던가 하는 걸 체크하고 설치하면 된다. 다른 방법은 명령중에 python 부분을 py 로 바꾸어 입력하여 실행해 보는 것이다. 즉, python hello.py 대신에 py hello.py 를 입력하고 엔터하여 ..
아나콘다에서의 패키지 설치 아나콘다(Anaconda)에서 패키지 설치시에 개인적으로 지키려는 원칙 conda install 로 설치해본다. conda install -c conda-forge 명령으로 설치해 본다. 인터넷에서 anaconda + 패키지명 으로 검색하여, anaconda.org 사이트 페이지가 검색되면, 검색페이지에서 소개하는 채널을 이용하여 conda install -c 명령으로 설치한다. 위 모든 것이 실패하였을 때에, pip install 한다. pip install 시 디펜던시로 설치된 패키지들 중에 conda install 이 가능한 패키지가 있다면, pip uninstall 한 후에 conda install 로 다시 설치한다. 그리고 base 는 작업용으로 사용하지 않고, 작업용으로는 반드시 conda c..
팩토리얼이 어떤 수로 나누어 떨어지는지 확인하기 어떤 정수 f의 팩토리얼이 다른 정수 n 으로 나누어 떨어지는지 확인하기. 1 x 2 x .. x f / n 를 손으로 계산할 때, 팩토리얼부터 구하지 않을 것. 분명 분모와 2를 약분하고, 분모와 3을 약분하고 ... 를 반복하는 방식으로 풀 것이다. 이 과정을 코드로 옮겨 봄. from functools import lru_cache @lru_cache(None) def gcd_r(b, s): if b < s: b, s = s, b b, s = s, b%s if s == 0: return b return gcd_r(b, s) def gcd(b, s): if b < s: b, s = s, b while True: b, s = s, b%s if s == 0: break return b def fac_di..
[Python] with 컨텍스트를 이용해서 다른 디렉토리에서 작업하고 오기. ref : https://stackoverflow.com/questions/299446/how-do-i-change-directory-back-to-my-original-working-directory-with-python 컨텍스트 매니저 함수를 다음과 같이 정의하고, from contextlib import contextmanager @contextmanager def cwd(path): oldpwd=os.getcwd() os.chdir(path) try: yield finally: os.chdir(oldpwd) 다음과 같이 쓰면 된다. print('current dir = `%s`'%(os.getcwd()) with cwd('./subdir'): # 여기서 하고 싶은 일들..