Programming Language/Python
-
파이썬의 메모리 관리Programming Language/Python 2019. 12. 6. 18:14
참고 - https://github.com/python/cpython - https://devguide.python.org/compiler/ 파이썬은 메모리 관리를 쉽게 하기 위해 PyArena와 Arena라는 것을 사용한다. 이 둘의 차이는 PyArena는 파이썬 코드를 AST로 컴파일한 객체의 메모리 관리를 위해 사용되는 것이고,(.py 파일을 실행할 때 사용됨) Arena는 실제로 우리가 생각하는 객체의 메모리 관리에 사용한다. 그렇다고 둘이 아예 분리해서 생각하면 안 된다. PyArena에서 사용되는 객체(변수, 상수 등 a_objects에 저장)는 Arena에서 관리되기 때문이다. PyArena는 pyarena.h/pyarena.c에 상당히 깔끔한 코드로 구현되어 있고, Arena는 비교적 지저..
-
[Python] arsenic을 이용한 웹 크롤링Programming Language/Python 2018. 9. 6. 02:45
브라우저 제어로 크롤링을 한다면 보통 Selenium을 사용합니다.하지만 Python Selenium은 Sync Syntax로 동작합니다. 병렬로 크롤링을 하려면 프로세스를 여러 개 실행시키거나, 스레드를 생성해야 하는 번거로움이 있습니다. arsenic은 async/await syntax 를 지원하므로 기존 async function을 호출하는 방식과 동일하게 Async programming을 할 수 있습니다.속도에는 영향이 크게 없지만 AsyncIO Project에서 같은 syntax를 사용하여 Selenium과 동일한 방식으로 크롤링 가능하다는 이점이 있습니다. arsenic은 Python 3.6 이상부터 사용가능합니다.3.6 미만 버전에서 설치하고 실행하면 3.6 버전에서 추가된 문법으로 인해 S..
-
OS X에서 pyenv / virtualenv / virtualenvwrapper 설치 및 사용하기Programming Language/Python 2017. 8. 5. 21:21
homebrew가 설치된 환경에서 포스팅합니다. pyenv: 다양한 파이썬 버전을 설치할 수 있는 독립적인 환경을 제공합니다.virtualenv: 패키지를 독립적인 환경에서 각각 설치할 수 있도록 합니다.virtualenvwrapper: 가상환경이 설치된 경로를 기억해야 한다는 virtualenv의 단점을 보완 1. 먼저 pip를 설치합니다. 1sudo easy_install pipcs 2. brew로 pyenv를 설치하고, pip로 virtualenv, virtualenvwrapper를 설치합니다. 1234567891011# pyenv 설치brew updatebrew install pyenv # virtualenv 설치pip install virtualenv # virtualenvwrapper 설치pi..