반응형

Error code 모음/4. Python errors 33

[python error] ImportError: cannot import name 'abc' from 'bson.py3compat'

MongoDB 라이브러리를 파이썬에서 사용할 경우 나타나는 에러이다. 만약에 bson 라이브러리와 pymongo 가 동시로 설치되어 있을 때 나타나는 에러인데, 파이썬이 3.7로 버전업이 되면서 bson 라이브러리의 기능을 자체지원하게 되었고 그렇기 때문에 pymongo 가 설치되면서 충돌을 일으키는 것이다. 그러기 때문에 bson 과 pymongo 를 지운 다음에 다시 pymongo 를 설치하면 웬만해서는 간단하게 해결이 가능하다 pip uninstall bson pip uninstall pymongo pip install pymongo 아래 내용 참고 stackoverflow.com/questions/60149801/import-error-importerror-cannot-import-name-abc..

[python error] : _csv.reader' object is not subscriptable

위 에러는 csv 라이브러리를 사용할 때 나타날 수 있는 에러이다. 이 에러는 csv reader 가 인덱싱을 서포트 하지 못하여 csv.reader 값을 리턴할 수가 없는 것이다. ## spotify searchAPI artists = [] with open('./artist_list.csv', encoding='utf8') as f: raw = csv.reader(f) for row in raw: artists.append(row[0]) ## row[0] 을 raw[0] 으로 썼었음.. 나의 경우에는 오타때문에 위 에러가 나타났지만, 평상시에는 rows 를 리스트 안에 넣어줌으로써 해결 할 수 있는 에러 같다. 참고 링크 https://stackoverflow.com/questions/32038776..

python error : list indices must be integers or slices, not str

이 에러는 인덱싱을 할 때 있어서, 인덱싱으로 기입해준 문자열이 제대로 일치하지 않거나 잘못되었을 때 나타나는 에러이다. 최근에 자주 이런 에러를 만났었는데. indices 가 뭐지... 곰곰히 생각을 하다가..문득.. indices 는 index 의 복수형.. 이라는 것을 깨달앗다. 그토록 많이 외웟던 단어이건만... 이 에러가 나올 때마다..다시 찾고 바로 해결하고 넘어가느냐..에휴... 바보스럽다..ㅠㅠ 앞으로는 이런 것을 보면 인덱싱 쪽에 문제가 있다는 것을 캐치해야겟다 주의! 참고링크 https://www.codeit.kr/community/threads/7 TypeError: list indices must be integers or slices, not str 오류 | 코드잇 새로운 코딩 교..

python error: Could not import the lzma module. Your installed Python is incomplete.

위 에러는 보통 리눅스에서 파이썬을 설치하고 모듈을 import 할 때 나타나는 현상이다.. 간단하게 lzma 에 대해서 기입하자면... The Lempel–Ziv–Markov chain algorithm(LZMA) performs lossless data compression using a dictionary compression scheme featuring a higher compression ratio than other compression algorithms. Python’s lzma module consists of classes and convenience functions for compression and decompression of data with LZMA algorithm. Le..

python error: do_this( ) takes 1 positional argument but 15 were given

해당 에러는 파이썬에서 나타나는 전달된 인자 갯수와 관련된 에러타입이다 함수는 위치 인자를 1개 취하는데, 이 개수보다 많은 인자가 위치 인자로 전달되었거나, 특정하게 지정되지 않은 인자가 전달되지 않았을 때 나타나는 에러이다. 이 상황은 주로 2가지 상황에서 나타나는 것 같은데.. 첫번째는 class 함수에 self 가 들어가지 않았을 때 위 첫번재 에러의 경우에는 아직 코드로 구현을 하지 않아서 . 나중에 참고하기 위해 링크를 남겨둔다 https://stackoverflow.com/questions/23944657/typeerror-method-takes-1-positional-argument-but-2-were-given TypeError: method() takes 1 positional argu..

python error: The "freeze_support()" line can be omitted if the program is not going to be frozen to produce an executable.

위 에러는 multiprocessing 을 실행할 때, if __name__ == '__main__': 과 freeze_support( ) 를 사용하지 않고 실행했을 때 나타나는 에러이다. 우선 if __name__ == '__main__' 의 경우에는 이미 실행된 함수가 다른 객체에 할당되어 실행될때, 이전의 내용과 중복되어 실행되는 것을 막아주는 기능을 하는데 중복/반복을 막아 자원이 중복 사용되는 것을 막아주는 함수이다. 그리고 freeze_support( ) 의 경우에는 파이썬 multiprocessing 이 윈도우에서 실행될 경우, 자원이 부족할 경우를 대비해 파일 실행을 위한 자원을 추가해주는 역할을 하는 함수이다 그리고 효율 적인 자원 사용과 중복 방지를 위하여 if __name__ =='_..

python error L “TypeError: __str__ returned non-string” but still prints to output?

__str__ 는 특수 메서드 중 하나입니다. class Element(): def __init__(self, name, symbol, number): self.name = name self.symbol = symbol self.number = number def __str__(self): print("name:{0} symbole:{1} number:{2}".format(self.name, self.symbol, self.number)) 특수 메서드는 print 가 아닌 return 으로 값을 받아줘야 에러없이 출력이 되는데 위 에어는 print( ) 로 값을 받아서 생긴 에러였네요 print( ) --> return 으로 해야합니다. class Element(): def __init__(self, n..

python error : __init__() missing 1 required positional argument:

아... 너무 쪽팔리는 에러를 만났네여.. 함수를 만들어 놓고도.. 안에 값을 넣지 않아서.. 저런 에러를 만나고 30분을 고민햇다니..!!!으!!! 일단 에러를 낸것이니 기록! class Thing(): def __init__(self, example): self.example = example thin = Thing(#이 부분이 문제였음) 위에 class 를 만들어주고 이를 thin 이라는 객체에 담아주었는데 __init__ 라는 초기화 함수를 써주었는데요. 처음에는 이해가 안되었지만, 이 에러를 풀고 원인을 공부하는 과정에서 이 함수를 왜 쓰는지 짐작을 할 수 있게 된 것 같네요 __init__ 는 초기화 함수라고 해서 객체를 만들때마다 클래스를 초기화해서 새것처럼 사용할 수 있게 만들어줍니다.. ..

파이썬 에러 : 'tuple' object has no attribute 'get'

해당 에러같은 경우에는 튜플을 받지 않는 함수를 만들거나 일부 라이브러리에서 발생할 수 있는 에러입니다. 이 에러가 뜨면.. 내가 코드를 친 어딘가에 튜플을 만들어 주었구나 라고 의심을 하시고 코드를 잘 살펴보는 게 중요한데요... # 튜플을 만들수 있는 방법 2가지 tuple_01 = (1,2,3) tuple_02 = 1,2,3, # 파이썬은 ( )를 안하고도 튜플을 만들 수 있기 때문에 # ( )를 안했는데 뒤에 ' , '를 한 부분이 있다면 이를 튜플로 # 인식할 가능성이 좀 있으니 주의해야합니다 tuple_02와 같이 뒤에 ' , '를 한경우 파이썬이 순간 이를 튜플로 인식을 해서 벌어지는 에러일 수 도 있습니다. 한번 자신이 친 코드 뒤에 버려진 ' , ' 이 없나 살펴보면 좋을 것 같습니다! ..

python error : "<stdin>", line1, in <module> IndexError: list index out of range

파이썬 에러 중에서 입력한 값이 인덱싱의 범위를 벗어났을 때 위 에러가 발생한다. 리스트의 인덱싱은 값을 할당한 위치에 맞게 입력되어야 하는데, 오프셋의 위치가 리스트의 범위를 벗어날 경우에 예외(에러)가 발생한다. >>> marxes = ['grou','efa','aefaf'] >>> marxes[0] 'grou' >>> marxes[-1] 'aefaf' >>> marxes[5] Traceback (most recent call last): File "", line 1, in IndexError: list index out of range 참고참고

반응형