본문 바로가기

반응형

Programming/Python

(12)
[python error] plt.show() 해도 윈도우가 열리지 않는 경우 깃허브에 올라와있는 코드를 다루다가 시각화가 필요한 일이 있어 import matplotlib.pyplot as plt ''' code 주절주절 ''' plt.show() 를 실행했으나 에러가 발생한것도 아니고 그냥 plt 윈도우가 뜨지도 않고 코드가 수행되버리는 일이 발생했다. 결론부터 말하면 실행하면서 지나가는 코드 중 어딘가에 backend 모드를 활성화시키는 코드가 있는 것이다. 나 같은 경우에는 아래의 코드가 문제 원인이었다. import matplotlib matplotlib.use('Agg') 중요한것은 이 코드가 다루고 있는 .py 파일 안에 있지 않고 다른 파일에 있어도 backend 모드가 되어버리는 것이다. 물론 다른 모듈을 import 하는 과정에서 위 코드가 실행되었을 것이다. 어..
[python error] ERROR: Could not find a version that satisfies the requirement torch==1.1.0 (from human-body-prior) (from versions: 1.7.1, 1.8.0, 1.8.1, 1.9.0, 1.9.1, 1.10.0, 1.10.1)ERROR: No matching distribution found for torch==1.1.0 SMPLify-X로부터 fitting 알고리즘을 사용하기 위해 readme 대로 설치하는 도중에 다음과 같은 에러가 발생했다. ERROR: Could not find a version that satisfies the requirement torch==1.1.0 (from human-body-prior) (from versions: 1.7.1, 1.8.0, 1.8.1, 1.9.0, 1.9.1, 1.10.0, 1.10.1) ERROR: No matching distribution found for torch==1.1.0 에러 내용을 보면 torch 1.1.0에 맞는 버전이 없다는 에러이다. 그런데 나는 파이토치를 1.8.0 버전을 쓰고 있어서 이해할 수 없었다. 그래서 conda 로 다시 pytorch 1..
[numpy] numpy.void 데이터 사용법 데이터셋을 다루는데 데이터셋의 라벨링이 numpy void로 되어있고 그 데이터가 도대체 어떤 형태로 정리가 되어있는건지 이해할 수 없어서 numpy void 에 대해서 공부해보았다. 이 글에서는 개념적인 내용보다는 numpy void 로 정리된 데이터를 어떻게 이해할 수 있으며 어떻게 사용하는지에 대해서만 간략한 예시로만 정리하겠다. dataset.labels['table'][sample_idx] (0, 1690, 1, [[[1357., 1759.], [1240., 1544.], [1137., 1681.], [1234., 1659.], [1320., 1534.], [1403., 1748.], [1169., 1646.], [1091., 1637.], [1079., 1538.], [1186., 1509.]..
[파이썬 에러] unicodedecodeerror 'utf-8' codec can't decode byte 0x80 in position 0 invalid start byte .pickle 로 저장되어 있는 데이터를 불러와서 사용하려고했다. 데이터는 딕셔너리로 구성되어 있었다. 그런데 바로 아래의 코드로 데이터를 불러오려고 했으나 아래와 같은 에러가 발생했다. with open(path, 'r') as f: pkl_data = pickle.load(f) unicodedecodeerror 'utf-8' codec can't decode byte 0x80 in position 0 invalid start byte 흠..... 간단히 해결법을 말하자면 pickle data가 byte type 으로 되어있으므로 byte 형식으로 읽어오면 된다. 따라서 위 코드를 아래와 같이 고치면 정상적으로 동작할것이다~! with open(path, 'rb') as f: pkl_data = pic..
[파이썬] PyYAML install error ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall. github 에서 README 대로 설치하다가 위와 같은 에러문제가 발생하는 경우가 있다. PyYAML 버전을 업그레이드 할 때 해당 라이브러리를 지우고 다시 설치하는데 문제가 있어 명령을 멈춘것으로 보인다. 이 때 이 에러를 무시하고 그냥 PyYAML 을 따로 먼저 재설치하고 기존 README 를 따라가면 문제가 해결되기도 한다. PyYAML 에러를 무시하고 install 하는 명령어..
[파이썬 에러] cv2.error: opencv(4.5.2) :-1: error: (-5:bad argument) in function 'circle' > overload resolution failed: > - layout of the output array img is incompatible with cv::mat (step[ndims-1] != elemsize or step[1] != elemsize*nchannels) > -.. python에서 좌표 몇개를 cv2 라이브러리를 이용해서 간단히 plotting 하려고 했으나 다음과 같은 에러가 발생했다. cv2.error: opencv(4.5.2) :-1: error: (-5:bad argument) in function 'circle' > overload resolution failed: > - layout of the output array img is incompatible with cv::mat (step[ndims-1] != elemsize or step[1] != elemsize*nchannels) > - expected ptr for argument 'img' 나 같은 경우에는 아래의 코드에서 문제가 발생했다. # setting image display = images..
[파이썬 에러] UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure. 나는 conda 로 각기 다른 코드를 각기 다른 환경에서 실행한다. 그런데 어떤 깃허브로 받아서 돌리던 코드에서 모델의 중간 feature 를 시각화 하고 싶어서 matplotlib 를 이용하여 plt.show()를 했으나 다음과 같은 에러가 발생했다. UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure. plt.show() 다른 사이트들을 참고하여 이 문제를 해결하려고 했으나 사이트에서 언급한 바에 따르면 "가상환경 라이브러리의 의존성 문제" 가 원인인듯 했고 이를 해결하기 위해 이 라이브러리를 설치해라.. 이걸 저렇게 바꿔라 등등의 솔루션이 나왔지만 해봐도 문제가 해결되지..
[python 문법] filter 사용법 filter result = filter(lambda x : "A", "B") B 에서 가져온 값 중 A를 만족할 때 (true가 되는) 값들만 가져온다. 예제를 살펴보자. target = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] result = filter(lambda x : x%2==0, target) print(list(result)) target이라는 리스트를 가져와서 x%2==0 를 만족하는 값들만 가져온다는 문법이다. 즉, target 중에서 짝수만 가져온다는 말. 결과는 다음과 같다. [2, 4, 6, 8, 10] 위의 예제에서 "A"조건이 항상 True 이게 만들어보자. target = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] result = filter(l..

반응형