apt-get install python3.8 -> e: unable to locate package python3.8 오류 발생 시 (1) 라이브러리 설치 $ sudo apt-get update $ sudo apt-get install build-essential checkinstall $ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev \ libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev (2) python 3.8 download $ cd /opt $ sudo wget https://www.python.org/ftp/python/3.8...
Language/Python
Go 언어를 계속 보다가 다시 Python 을 보면 type 에 대해 다시 한번 생각 할 때가 많은 것 같다. 최근에 그런 생각이 많이 드는데 백엔드가 Django 프론트엔드가 TypeScript 일 때 백엔드에서 리턴값의 type 을 잘 생각하고 보내줘야 겠다는 생각이 많이 든다. 그래서 python type 을 확인 하는 방법을 간단하게 정리 하려고 한다. 1. type() 가장 간단한 방법은 type() 이다. limjian@Jians-MacBook-Pro-13 ~ % python3 Python 3.9.10 (v3.9.10:f2f3f53782, Jan 13 2022, 17:02:14) [Clang 6.0 (clang-600.0.57)] on darwin Type "help", "copyright",..
타입 어노테이션(type annotation) 또는 타입 힌트(type hint)가 점점 많은 파이썬 프로젝트에서 사용되고 있는 추세 파이썬 버전 3.5에 추가 Type Annotation def greet(greeting: str, name: str) -> str: return greeting + name greet 라는 함수의 파라미터 greeting, name 이 문자열 이라는 것을 알 수 있고, 리턴 값이 문자열이라는것을 알 수 있다. 그러면 만약에.. print(greet(1, 2)) (venv) limjian@Jians-MacBook-Pro-13 python % python3 type_annotation.py 3 greet 라는 함수에 파라미터를 정수를 넣었을 때.. 그래도 잘 출력 되는 것을..
python 으로 프로젝트를 진행하면 보통 가상환경(virtualenv) 으로 진행을 한다. 가상환경이란 원하는 Python 환경을 구축하기 위해 필요한 모듈만 담아 놓는 곳 라고 생각하면 된다. 가상환경을 사용하는 가장 큰 이유는 여러개의 서비스를 개발 할 경우 pip으로 설치한 패키지의 버전들이 문제가 될 수 있어서 그렇다. 그래서 pip 로 설치한 패키지를 어떻게 관리를 하는지 적으려고 한다. # Step 1 pip freeze ( pip list ) 두개의 명령어 다 상관없는데 pip 으로 설치한 list 들을 보여준다. (venv) limjian@Jians-MacBook-Pro-13 python-utils % pip freeze autopep8==1.6.0 . . . pycodestyle==2..
암호화 관련 전문 분야가 아니기 때문에 본인도 AES 정의는 검색에 의한 정리 AES 고급 암호화 표준 이라는 의미 암호화 및 복호화 동일한 키를 사용하는 대칭키 알고리즘 AES-128, AES-192, AES-256 으로 나눠지는데 Secret Key 의 길이에 따라 나눠짐 AES 를 사용해서 암호화 / 복호화 할 기회가 있어서 하게 되었고 어떤 데이터를 URL 에 노출 시켜야 되는 상황이 있어서 AES 암호화를 사용해서 암호화 했다. 그 때, 조금 찾아 보면서 고민했던 기억이 있어서 정리 AES 에 대해 잘 모르니까 본인도 검색을 하면서 만들어져 있는 소스도 가져다 써보고 했었는데 AES 마지막에 거의 대부분 base64(64진법) 인코딩을 사용 하는 것 같더라. base64로 인코딩을 하는데 이게 ..
환경 Python 3.10.1 pycryptodome==3.14.0 AES 암호화를 다시 만들어 보고 있는데 오류가 나서 정리 보통 다른 글 들을 찾아보면 cipher가 이런식으로 되어 있을 건데 cipher = AES.new(self.key, AES.MODE_CBC, iv) Object type cannot be passed to C code 오류가 난다. 해결 방법 self.key에 encode() 해주면 된다. cipher = AES.new(self.key.encode(), AES.MODE_CBC, iv)
AES 암호화에 대해서 고생한 기억이 있어서 적으려고 했는데 다른 블로그들 보면 pycrypto 을 install 하라는 사람들이 많아서.. pycrypto는 2013년 마지막 업데이트이고 암호화 코드 만들다 보면 Random 안 collect 함수 time.clock() 에서 오류난다. from Crypto import Random def collect(self): # Collect 64 bits of entropy from the operating system and feed it to Fortuna. self._osrng_es.feed(self._osrng.read(8)) # Add the fractional part of time.time() t = time.time() self._time_es...
iTerm 을 사용중이기 때문에 iTerm 열어서 # python --version limjian@Jians-MacBook-Pro-13 ~ % python --version Python 2.7.18 mac 기본적으로 python 2.X 가 설치되어있다. Python Releases for macOS The official home of the Python Programming Language www.python.org python3 을 다운받고.. # python3 --version limjian@Jians-MacBook-Pro-13 ~ % python3 --version Python 3.10.1 limjian@Jians-MacBook-Pro-13 ~ % Mac 자체에서 python 2.X 를 사용하는 ..