분명 numpy를 설치했는데 파이썬에서 numpy를 사용하려 하면 다음과 같이 AttributeError: module 'numpy' has no attribute ... 하는 에러가 뜰 때가 있습니다.

import numpy as np

print(np.__version__)
# AttributeError: module 'numpy' has no attribute '__version__'

 

이는 numpy가 설치는 되었지만 시스템에서 파이썬 라이브러리로 제대로 연결이 안 되어서 그렇습니다. 이럴 경우 맥에서 homebrew를 사용할 때를 기준으로

brew link --overwrite numpy

 

를 실행해주면 문제가 해결됩니다.

 

참조한 곳: https://github.com/Homebrew/homebrew-core/issues/15698#issuecomment-315730732

파이썬에서 상속을 통해 클래스를 만들 경우 생성자 안에서 상위 클래스의 생성자를 호출해야 할 때가 있습니다. 그럴 때 아래 두 종류의 코드가 사용되곤 하는데요, 간단한 코드는 파이썬 3에서부터 지원되는 문법이고 복잡한 코드는 파이썬 2와 3에서 모두 지원됩니다. 기능은 동일합니다.

 

1. 간단한 코드

# 파이썬 3에서부터 지원됩니다.
super().__init__()

 

2. 복잡한 코드

# 파이썬 2와 3에서 모두 지원됩니다.
super(__class__, self).__init__()

 

참조: https://stackoverflow.com/a/61288819/1125721

[파이썬] 아나콘다 업데이트하기


아나콘다를 사용하다 보면 아나콘다 자체 및 부속 라이브러리들을 업데이트 해야 할 일이 생기곤 합니다. 그럴 때에는 다음과 같이 하면 쉽게 전체 업데이트를 할 수 있습니다.


conda update -n root conda

conda update --all

conda update --all


conda update -n root conda 는 conda 자체를 최신 버전으로 업데이트하는 명령입니다.

conda update --all 이 본격적으로 업데이트를 하는 명령인데, 경우에 따라 두 번 실행해야 다 업데이트가 되는 경우가 있었습니다.


( 다음 링크를 참고했습니다. https://stackoverflow.com/questions/45197777/how-do-i-update-anaconda#45197778 )

[파이썬] glob - 디렉토리 내 특정 확장자 파일 모두 출력하기


디렉토리 안에 있는 파일을 다룰 때에는 os와 os.path를 함께 사용해도 되고 glob을 사용해도 됩니다. 특정 확장자의 파일만 가져오기 위해 glob을 사용해보도록 하겠습니다. 경로를 합치기 위해 os.path도 사용했습니다.


import glob

import os.path


myPath = '/내가/원하는/디렉토리/경로'

myExt = '*.jpg' # 찾고 싶은 확장자


for a in glob.glob(os.path.join(myPath, myExt)):

    print(a)


이렇게 하면 myPath 안에 있는 jpg 확장자 파일들이 화면에 출력됩니다.

[파이썬] os와 os.path - 디렉토리 내 파일 전부 출력하기


특정 디렉토리 안에 있는 파일을 배열로 받아와야 할 때가 종종 있습니다. os와 os.path를 함께 사용해도 되고 glob을 사용해도 됩니다. 여기서는 os와 os.path를 사용해보도록 하겠습니다.


import os

import os.path


myPath = '/내가/원하는/디렉토리/경로'

files = list()


for a in os.listdir(myPath):

    fullPath = os.path.join(myPath, a) # 파일일 수도 있고 디렉토리일 수도 있습니다.

    if os.path.isfile(fullPath): # 파일이라면

        files.append(fullPath)


print(files)


이렇게 하면 myPath 안에 있는 파일들이 화면에 출력됩니다.

[파이썬] argparse - 명령행 인자 쉽게 설정하기


파이썬 프로그래밍을 하다 보면 명령행에서 인자를 받아야 할 때가 종종 있습니다. 물론 sys.argv를 사용해도 되지만, argparse 모듈을 사용하면 명령행 인자를 훨씬 쉽게 관리할 수 있습니다. 사용법은 다음과 같습니다.


import argparse


parser = argparse.ArgumentParser(description='명령행 인자를 쉽게 설정합시다.')

parser.add_argument("-f", "--foo", required=True) # foo라는 인자

parser.add_argument("-b", "--bar",   required=True) # bar라는 인자


args = parser.parse_args()

foo = args.foo

bar = args.bar

# 이제부터 foo, bar 변수를 사용하시면 됩니다.


이렇게 프로그램을 만드신 후에는 명령행에서 쉽게 인자를 주실 수 있습니다. 다음과 같이 하시면 됩니다. 두 방법 다 됩니다.


$ python 인자연습.py -f 안녕 -b 하세요

$ python 인자연습.py --foo 안녕 --bar 하세요


+ Recent posts