본문 바로가기

Python

.pyc란 무엇인가? 파이썬은 인터프리터 언어라고 알려져있다. 파이썬을 실행하면 나오는 .pyc는 무엇일까? python 언어를 컴파일해 놓은 파일인데 이 안에는 원시 파이썬 코드가 컴파일된 byte 코드가 존재한다. 인터프리터 언어인데 byte 코드로 컴파일을 했다니 좀 이상하다. 파이썬 가상 머신(virtual machine)은 컴파일러와 인터프리터가 있다. 인터프리터는 .py 파일에 작성된 원시 파이썬 코드를 곧바로 해석할 수 없다. 그렇기 때문에 우선 원시 코드는 byte 코드로 변환되어야 한다. 이 과정에서 .pyc 파일이 생성되고 그 안에 byte 코드가 작성된다. .pyc 파일이 이미 생성되어 있으면 다시 컴파일할 필요 없이 바로 시스템에 byte 코드를 적재한다. .pyc 파일은 캐시처럼 취급된다. 미리 byt..
파이참에서 DB 브라우저 켜기 유료인 전문가용 파이참에서는 DB 브라우저를 지원해줬다. 무료 교육용 파이참에서는 DB 브라우저가 없다.. settings -> plugins -> database navigator 검색 후 install, 파이참 재부팅 -> project탭 근처에 DB Browser가 생긴다.
파이참에서 가상환경 사용하기 virtualenv window 환경 맥 OS 환경에선 pyenv를 썼는데 window 환경에선 pyenv를 쓸 수가 없다고 한다.. 진짠가..?! 그래서 virtualenv를 사용해야 한다. 파이썬 설치 파이썬 홈페이지에서 자신의 OS에 맞는 파이썬을 설치하고 path 지정 체크, pip 설치 체크를 한다. virtualenv 설치 일단 cmd 창으로 들어가서 pip install virtualenv로 virtualenv를 설치해준다. 고마운 파이썬 패키지 매니저.. 특정 파이썬 버전의 가상환경 만들기 "원하는 버전의 파이썬 실행파일이 있는 경로" -m venv "가상환경 이름" 을 입력하면 가상환경이 만들어진다. C:/Python36/python.exe -m venv pyenv36 여기선 파이썬 3.6.5버전의 가상환경이고 가상환경의 이..
os.path.dirname() os.path.abspath() settings.py에 보면 BASE_DIR 값에 뭔가를 할당한다. os.path.abspath(__file__)로 현재 파일의 절대 경로를 알아낸다. os.path.dirname()으로 이 파일의 디렉토리 이름을 알아낸다. 계속해서 상위 디렉토리 이름을 알아내다가 나온 값이 root 디렉토리다. root 디렉토리를 찾을 수 있도록 os.path.dirname()을 적절히 사용해줘야 한다. BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) https://stackoverflow.com/questions/25139403/why-os-path-dirname-file-is-working-in-django..
module과 package의 차이점 What's the difference between a Python module and a Python package? What's the difference between a Python module and a Python package? What's the difference between a Python module and a Python package? See also: What's the difference between "package" and "module" (for other languages) stackoverflow.com 모듈은 파일 or 파일들이다. 패키지는 파일을 모아둔 디렉토리다.
pyenv install 3.x.x - zipimport.ZipImportError: can't decompress data; zlib not available brew install homebrew/dupes/zlib 명령으로 zlib 설치가 안될 경우(개빡..ㅜㅠ) brew install zlib 명령을 입력한다. zsh을 쓰면 ~./zshrc에 bash를 쓰면 아마도 ~./bashrc 또는 ~./bash_profile 등에 다음 코드 입력 # For compilers to find zlib you may need to set: export LDFLAGS="${LDFLAGS} -L/usr/local/opt/zlib/lib" export CPPFLAGS="${CPPFLAGS} -I/usr/local/opt/zlib/include" # For pkg-config to find zlib you may need to set: export PKG_CONFIG_PATH..
flake8 에러 zsh: command not found: flake8 zsh: command not found: flake8 설치 확인 pip show -f flake8 또는 pip freeze로 flake8가 설치되었는 지 확인. 설치가 되었는데도 flake8 실행이 안되면 pip uninstall flake8로 삭제. pip install flake8로 설치. 프로젝트 코드가 있는 위치로 가서 flake8 . 또는 flake8 abc.py 입력
ModuleNotFoundError: No module named '_sqlite3' 가상 환경에서 장고 서버를 실행하면 sqlite 문제가 생겼다. CFLAGS="-I$(xcrun --show-sdk-path)/usr/include" pyenv install -v 3.6.5 입력 후 좀 기다린다. 다시 서버 실행해보면 된다. 3.6.5는 임의의 python version. CFLAGS : 일반적인 컴파일 옵션들을 선언해 주는 부분 -I : include할 head 파일들의 path를 지정